01 2014 档案

执行计划--Adhoc和Prepare
摘要:在和SQLPass讨论adhoc和Prepare时,有各自不同的观点,我来发表下我的理解,不对之处,敬请指出!Adhoc(即席查询):没有参数化的查询计划会被标记为adhoc,adhoc不能理解为该执行计划不会被重用。Prepared(预定义):查询中使用到参数的执行计划会被标记为Prepared.在后续测试中,每次测试之前需要清除执行计划:--清理执行计划DBCC FREEPROCCACHE测试语句执行结束后需要使用以下语句来查看执行计划:--查看执行计划select cp.usecounts as '使用次数',cp.cacheobjtype as '缓存类型 阅读全文

posted @ 2014-01-24 00:20 笑东风 阅读(3144) 评论(3) 推荐(3) 编辑

Replication--如何使用快照来初始化化请求订阅
摘要:1>使用"默认位置"来初始化,简单易用,无须额外配置,但是适用场景有限。 2>使用"备用文件夹"来初始化,略微复杂,但可操作行强,可以使用多种方式将快照复制到订阅服务器,缺点是以后每次初始化都需要拷贝。 3>使用"FTP 文件夹"来初始化,相对复杂,如果FTP 用户的根目录配置不当,就会失败,优点是配置成功后,以后每次重新无须再做修改。 4>由于快照使用BCP文件来存放某一点的数据,因此数据较大时,快照文件会特别大,使用FTP方式不能压缩快照文件,因此会耗时较长,推荐将快照压缩后传递到订阅服务器,再使用"备用文件夹"来初始化。 阅读全文

posted @ 2014-01-22 20:38 笑东风 阅读(2106) 评论(2) 推荐(2) 编辑

Replication--备份初始化需要还原备份么?
摘要:测试场景:发布服务器:SQLVM6\SQL2订阅服务器:SQLVM5\SQL2分发服务器:SQLVM3\SQL2发布数据库:RepDB2订阅数据库:RepDB2发布:RepDB2_TB1测试步骤:1>停止发布库上的日志备份2>备份发布服务器上数据库"RepDB2" 至"E:\REPDB2.BAK"3>将备份复制到订阅服务器,还原出数据库RepDB2_Temp4>在订阅服务器上将 RepDB2_Temp 订阅相关的数据导入到 RepDB2(INSERT SELECT)5>将发布RepDB2_TB1的属性"允许从备份文 阅读全文

posted @ 2014-01-22 10:56 笑东风 阅读(587) 评论(0) 推荐(0) 编辑

疑难杂症--SQL SERVER 18056的错误
摘要:朋友遇到一个很棘手的问题,查看服务器日志,报以下错误:01/21/2014 11:47:43,spid296,未知,错误: 18056,严重性: 20,状态: 29。01/21/2014 11:47:43,spid495,未知,The client was unable to reuse a session with SPID 495 which had been reset for connection pooling. The failure ID is 29. This error may have been caused by an earlier operation failing. 阅读全文

posted @ 2014-01-21 18:02 笑东风 阅读(7046) 评论(2) 推荐(0) 编辑

TSQL--如何突破PRINT的8000大限
摘要:使用FOR XML 来解决PRINT 字符串被截断的问题 阅读全文

posted @ 2014-01-20 22:25 笑东风 阅读(3425) 评论(7) 推荐(3) 编辑

执行计划--在存储过程中使用SET对执行计划的影响
摘要:--如果在存储过程中定义变量,并为变量SET赋值,该变量的值无法为执行计划提供参考(即执行计划不考虑该变量),将会出现预估行数和实际行数相差过大导致执行计划不优的情况--如果在存储过程中使用SET为存储过程参数重新赋值,执行计划仍采用执行时传入的值来生成执行计划。--=======================================--准备测试数据DROP TABLE TB1GOSELECT IDENTITY(INT,1,1) AS RID,*INTO TB1FROM sys.all_columnsGOINSERT INTO TB1SELECT *FROM sys.all_colu 阅读全文

posted @ 2014-01-20 15:25 笑东风 阅读(898) 评论(0) 推荐(1) 编辑

执行计划--为查询指定查询计划
摘要:--===========================--查询语句EXEC [sys].[sp_executesql] N'SELECT COUNT(1)FROM dbo.TB1WHERE RID>@RID',N'@RID INT',@RID=10 --===========================--为该语句创建执行计划EXEC [sys].[sp_create_plan_guide]@name=N'Guide3',@type=N'SQL',@stmt=N'SELECT COUNT(1)FROM dbo 阅读全文

posted @ 2014-01-20 14:21 笑东风 阅读(405) 评论(0) 推荐(1) 编辑

执行计划--重编译
摘要:--==========================================--在生产环境中,会遇到表中某列数据分布不均匀,导致在生成执行计划--不能适应参数的变化--==========================================--解决方式:强制存储过程重编译CREATE PROCEDURE dbo.USP_GetData( @PID INT)WITH RECOMPILEASBEGINSELECT *FROM TB1WHERE PID=@PIDENDGO--==========================================--解决方式:.. 阅读全文

posted @ 2014-01-20 14:15 笑东风 阅读(269) 评论(0) 推荐(1) 编辑

执行计划--参数化设置
摘要:1>虽然可以使用“简单参数化”或“强制参数化”来优化 adhoc 查询,重用执行计划,但是仍会造成一定的性能损耗,对于重复执行的语句,还是应该将之参数化。 2>当大量只执行一次的adhoc 查询语句出现时,可以使用 optimize for ad hoc workloads 来减少计划缓存使用的内存。 阅读全文

posted @ 2014-01-20 13:48 笑东风 阅读(1356) 评论(0) 推荐(1) 编辑

执行计划--WHERE条件的先后顺序对执行计划的影响
摘要:虽然在很多情况下SQL Sever引擎能帮助我们判定 WHERE 条件后的执行顺序,但我们仍应该将选择性高(过滤数据多)的条件放置在 WHERE 语句中的前面,尤其对于复杂的SQL 语句,应仔细分析测试。 阅读全文

posted @ 2014-01-20 13:36 笑东风 阅读(9336) 评论(1) 推荐(1) 编辑

神器与经典--DMVsinSQLServer
摘要:绝对值得收藏的DMV 此经典SQL囊括以下信息 1. Causes of the server waits 2. Databases using the most IO 3. Count of missing indexes, by database 4. Most important missing indexes 5. Unused Indexes 6. Most costly indexes (high maintenance) 7. Most used indexes 8. Most fragmented indexes 9. Most costly queries, by average IO 10. Most costly queries, by average CPU 11. Most costly CLR queries, by average CLR time 12. Most executed queries 13. Queries suffering most from blocking 14. Queries with the lo 阅读全文

posted @ 2014-01-20 12:31 笑东风 阅读(1415) 评论(1) 推荐(2) 编辑

神器与经典--sp_helpIndex
摘要:SQL SERVER 提供了众多的SP_HELP*的系统存储过程来帮助开发者查看SQL SERVER 各种对象,如最为常用的有SP_HELPTEXT。Kimberly Tripp 在此基础上重写出更好的查看所有的存储过程 阅读全文

posted @ 2014-01-19 21:29 笑东风 阅读(5508) 评论(4) 推荐(5) 编辑

曲苑杂坛--清除维护计划产生的日志文件
摘要:在SQL SERVER中,由任务计划产生的JOB执行时会生成日志,并默认保存到SQL Server的日志文件夹下。如果维护计划运行频率较高的话,会积累较多的日志文件,需要及时清理。方式1--不生成日志记录方法二:由于日志记录时txt文档,可以使用“清除维护”来清理 阅读全文

posted @ 2014-01-17 18:00 笑东风 阅读(325) 评论(0) 推荐(0) 编辑

曲苑杂坛--服务启动时执行
摘要:设置自动执行的存储过程。设置为自动执行的存储过程在每次启动 SQL Server 实例时运行。Transact-SQL 语法约定语法sp_procoption [ @ProcName = ] 'procedure' , [ @OptionName = ] 'option' , [ @OptionValue = ] 'value' 参数[ @ProcName = ] 'procedure'为其设置选项的过程的名称。 procedure 的数据类型为 nvarchar(776),无默认值。[ @OptionName = ] ' 阅读全文

posted @ 2014-01-17 17:57 笑东风 阅读(265) 评论(0) 推荐(0) 编辑

TSQL--可以在触发器中使用COMMIT吗?
摘要:很多场景中,我们使用触发器来回滚一些不满足业务逻辑的修改,这没有问题,问题是我能在触发器中提交事务吗?这个问题很小白,当也来测试一下/*测试中创建三种表,对表 TB2 插入时触发触发器,在触发器中将TB2中新插入的数据插入到 TB3 和 TB4*/USE TestDBGO DROP TABLE TB2GODROP TABLE TB3GODROP TABLE TB4GOCREATE TABLE TB2(ID INT PRIMARY KEY IDENTITY,C1 INT)GOCREATE TABLE TB3(ID INT PRIMARY KEY,C1 INT)GOCREATE TABLE TB4 阅读全文

posted @ 2014-01-17 17:36 笑东风 阅读(1007) 评论(0) 推荐(1) 编辑

Wait--常见的等待类型
摘要:--==================================================================================--SLEEP_BPOOL_FLUSHMSDN上如是说:当检查点为了避免磁盘子系统泛滥而中止新 I/O 的发布时出现。场景:在做以下操作时1. 在修改数据库属性,如修改还原恢复模式简单为完整,长时间不能运行完毕2. 还原数据库时,消息提示100% 但是在运行经过调查,发现等待为SLEEP_BPOOL_FLUSH,进一步调查,发现该数据库上及其容易产生脏页(修改1W条记录可能会照成2W的脏页)解决办法:1. 将数据量较大的表和索引 阅读全文

posted @ 2014-01-17 17:28 笑东风 阅读(1007) 评论(0) 推荐(1) 编辑

Wait--使用sys.dm_io_virtual_file_stats来查看IO延迟
摘要:/*============================================================================ File: VirtualFileStats.sql Summary: sys.dm_io_virtual_file_stats Date: March 2011------------------------------------------------------------------------------ Written by Paul S. Randal, SQLskills.com (c) 20... 阅读全文

posted @ 2014-01-17 17:22 笑东风 阅读(1597) 评论(4) 推荐(1) 编辑

Wait--查看等待
摘要:--清除等待统计--=====================================================--清除等待统计DBCC SQLPERF (N'sys.dm_os_wait_stats', CLEAR);GO--通用的查看等待WITH [Waits] AS (SELECT [wait_type], [wait_time_ms] / 1000.0 AS [WaitS], ([wait_time_ms] - [signal_wait_time_ms]) / 1000.0 AS [ResourceS], [s... 阅读全文

posted @ 2014-01-17 17:21 笑东风 阅读(641) 评论(0) 推荐(0) 编辑

TSQL--临时表和表变量
摘要:1. 临时表适用数据量较大的情况,因为临时表可以建立索引2. 表变量适用于数据较小的情况,表变量只能在定义时创建约束(PRIMARY KEY/UNIQUE)从而间接建立索引3. 临时表是事务性的,数据会随着事务回滚而回滚,表变量是非事务性的4. 临时表和表变量都存放在内存中,当内存存在压力时才放入到硬盘5. 临时表属于回话级别,除非显式DROP,否则会一直保持到回话结束6. 表变量属于上下文级别,当前批处理结束后会被立即释放。7. 临时表的创建删除会导致存储过程重编译,而在存储过程中使用表变量不会引发重编译8. 用户定义的临时对象(临时表、全局临时表、表变量、游标)都优先存放到内存9. 临时表 阅读全文

posted @ 2014-01-17 17:14 笑东风 阅读(883) 评论(0) 推荐(0) 编辑

TDE--相关Demo
摘要:SQL Server 2008引入透明数据加密(Transparent Data Encryption),它允许你完全无需修改应用程序代码而对整个数据库加密。当一个用户数据库可用且已启用TDE时,在写入到磁盘时在页级实现加密。在数据页读入内存时解密。如果数据库文件或数据库备份被盗,没有用来加密的原始证书将无法访问。TDE Demo:--在还原数据库之前必须还原证书,否则数据无法被还原--错误提示:找不到指纹为'XXX' 的服务器证书。use master;GO--还原证书DB_TDE_certCREATE CERTIFICATE DB_TDE_certFROM FILE = & 阅读全文

posted @ 2014-01-17 16:58 笑东风 阅读(541) 评论(0) 推荐(0) 编辑

曲苑杂坛--即时文件初始化特性
摘要:即时文件初始化允许数据文件初始化过程跳过填0初始化过程,从而缩短数据库还原时间或数据库文件增长时间Note:即时文件初始化对日志文件无效使用跟踪标记3004来检查即时初始化功能是否开启使用追踪标记1806为ON来暂时停止文件即时初始化参考文献:http://www.cnblogs.com/CareySon/archive/2012/10/22/2733487.htmlhttp://www.sqlskills.com/blogs/kimberly/instant-initialization-what-why-and-how/ 阅读全文

posted @ 2014-01-17 16:55 笑东风 阅读(208) 评论(0) 推荐(0) 编辑

曲苑杂坛--修改数据库名和文件组名
摘要:/*该脚本示例如何完整的修改一个数据库的名称.数据库为原名称为DB_BEIJING,需要修改成DB_SHANGHAInzperfect 2012.12.19*/--判断是否存在同名的数据库,以防止误删除USE masterGOIF EXISTS (SELECT name FROM sys.databases WHERE name = N'DB_BEIJING')BEGIN RAISERROR('请注意:数据库已存在!',15,1) RETURN --DROP DATABASE DB_BEIJINGENDGOUSE masterGO--创建测试数库CREATE D 阅读全文

posted @ 2014-01-17 16:53 笑东风 阅读(493) 评论(0) 推荐(0) 编辑

曲苑杂坛--修改数据库服务器名称
摘要:--===========================================================--不能修改实例名称,但可以修改服务器名称DECLARE @serverName NVARCHAR(200);SELECT @serverName=@@SERVERNAME;EXEC sp_dropserver @server = @serverName;SET @serverName = CAST(SERVERPROPERTY('servername') AS sysname);SELECT @serverNameEXEC sp_addserver @se 阅读全文

posted @ 2014-01-17 16:45 笑东风 阅读(307) 评论(0) 推荐(0) 编辑

系统数据库--修改tempdb的位置
摘要:use mastergoAlter database tempdb modify file (name = tempdev, filename = 'G:\db\tempdb.mdf')goAlter database tempdb modify file (name = templog, filename = 'G:\db\templog.ldf')--重启数据库即可 阅读全文

posted @ 2014-01-17 16:44 笑东风 阅读(591) 评论(0) 推荐(0) 编辑

系统数据库--恢复Master数据库
摘要:实现步骤:关闭SQL SERVER 服务,使用DAC登录在cmd下还原master重启SQL SERVER 服务 阅读全文

posted @ 2014-01-17 16:42 笑东风 阅读(254) 评论(0) 推荐(0) 编辑

TSQL--游标Dem
摘要:DECLARE @ID INT;DECLARE @Name NVARCHAR(200);DECLARE @NewName NVARCHAR(200);DECLARE MyCursor CURSOR FORSELECT TOP(100) ID,NAME1 FROM dbo.TB1ORDER BY ID;OPEN MyCursorFETCH NEXT FROM MyCursor INTO @ID, @NameWHILE @@FETCH_STATUS = 0BEGINSET @NewName=@Name+CAST(@ID AS NVARCHAR(20))UPDATE dbo.TB1SET name1 阅读全文

posted @ 2014-01-17 16:35 笑东风 阅读(212) 评论(0) 推荐(0) 编辑

TSQL--约束基础和Demo
摘要:SQL SERVER 中使用constraint和role来对数据进行限制,role需要先创建,再应用到指定的表和列上,role可以被应用到多个对象上。而constraint只能针对单一对象,处理的问题更多一些,constraint可以跨越多个表处理,如限制某个表中输入的值不能大于另一表的最大值,role无法实现这样的需求。通常优先考虑使用constraint来实现对数据的限制。 SQL Server中约束有: check constraint unique constraint primary key constraint default constraint 阅读全文

posted @ 2014-01-17 16:32 笑东风 阅读(278) 评论(0) 推荐(0) 编辑

ResorceGovernor--基础和Demo
摘要:资源调控器分为三部分:1:资源池,将资源CPU/MEMORY划分到不同的载体上2:负载组,承载负载并将负载映射到不同的资源池3: 分类函数,将不同回话映射到不同的负载组08提供两种预定义的系统资源池1:internal,内部资源池,只用于SQL数据库引擎,系统管理员不能改变和设置;2:default,默认资源池,所有未分配资源池的的回话都使用默认资源池,默认资源池不能被修改和删除;所有资源池的下限之和不得超过100%,因为系统会尽量满足资源池下限资源池的上线可设置为下限到100%之间--====================================================== 阅读全文

posted @ 2014-01-17 16:00 笑东风 阅读(426) 评论(0) 推荐(0) 编辑

曲苑杂坛--查看CPU配置
摘要:​--===================================================--查看CPU配置SELECT cpu_count AS [Logical CPU Count], hyperthread_ratio AS [Hyperthread Ratio],cpu_count/hyperthread_ratio AS [Physical CPU Count]FROM sys.dm_os_sys_info 阅读全文

posted @ 2014-01-17 15:57 笑东风 阅读(312) 评论(0) 推荐(0) 编辑

优化案例--改写IN条件为INNER JOIN
摘要:由于满足以下条件中一个或多个--1.条件IN中外部数据与子查询数据是一对一的关系--2.对查询结果排重--因此可以将IN条件改写为INNDE JOIN 在将IN条件改成INNER JOIN 时,一定要考虑数据是一对一还还是一对多以及多对一的关系, 如果是一对多的关系,需要对查询结果集排重。 如果除I 阅读全文

posted @ 2014-01-17 15:51 笑东风 阅读(1906) 评论(0) 推荐(0) 编辑

优化案例--定期归档数据
摘要:归档历史数据很少有开发会考虑到数据归档的问题已经数据增长的问题,当程序运行一段时间后,就会出现各种问题,部分问题可以修改SQL语句或使用索引来解决,但如果SQL语句无法修改,糟糕的SQL语句无法使用索引,归档历史数据便成为一种解决手段。如某系统登录表每天增加 20W 数据,系统需访问最近一周的数据,系统运行一年后,积累数据 6000W 数据,系统中某一查询造成整表扫描,消耗大量IO和CPU资源,并导致内存压力。解决方法:将表中数据按天分区,定期将一周前数据归档,这样将表扫描消耗的资源控制在可接受的范围。归档历史数据需要考虑以下问题1> 那些属于历史数据(数据的访问频率和访问几率)2> 阅读全文

posted @ 2014-01-17 15:47 笑东风 阅读(515) 评论(0) 推荐(0) 编辑

疑难杂症--单回话下 WITH(NOLOCK)返回更多数据
摘要:​场景:某DBA在一个人操作数据库时发现,可提交读事务隔离级别下返回的数据少于未提交读事务隔离级别,确认没有其他事务修改数据。解决方案1:将数据查询放入一个新建的表,使用该表查询发现问题被消除。解决方案2:运行DBCC CHECKDB,发现 3 个分配错误和 21756 个一致性错误,使用DBCC CHECKDB(REPAIR_REBUILD)来修复问题原因:在未提交读或NOLOCK下,SQL SERVER 使用IAM链来读取所有数据,在普通模式下,SQL SERVER 按照聚集索引的索引链(每个索引页头存放上一页和下一页的文件ID和页ID)来访问所有数据,因此当分配页出现错误时,就会导致该情 阅读全文

posted @ 2014-01-17 15:39 笑东风 阅读(350) 评论(0) 推荐(0) 编辑

疑难杂症--已停止运行DBCC造成阻塞
摘要:场景数据库因非法断电导致出现分配页上不一致,运行完DBCC CHECKDB后出现以下错误:表错误: 表 't_pc_id' (ID 277576027)。数据行在索引 'last_login_date' (ID 7)中没有匹配的索引行。与以下数据行匹配的索引行的键可能丢失或关闭运行DBCC CHECKDB所在的SSSM时出现错误重新打开SSMS ,查看索引last_login_date使用情况发现该索引没有被任何查询使用到,于是准备先禁用索引再后续删除在一登陆界面上使用SSMS UI来禁用索引,结果发现UI无法操作(当时CPU使用率较高)切换到另一登陆界面,在S 阅读全文

posted @ 2014-01-17 15:27 笑东风 阅读(689) 评论(0) 推荐(0) 编辑

疑难杂症--数据库触发器导致批处理中变量无效
摘要:场景:在数据库上有触发器(该触发器由复制发布产生)create trigger [tr_MStran_altertable] on database for ALTER_TABLE as set ANSI_NULLS ON set ANSI_PADDING ON set ANSI_WARNINGS ON set ARITHABORT ON set CONCAT_NULL_YIELDS_NULL ON set NUMERIC_ROUNDABORT OFF set QUOTED_IDENTIFIER ON declare @EventData xml set @EventData=EventDat 阅读全文

posted @ 2014-01-17 15:26 笑东风 阅读(545) 评论(0) 推荐(0) 编辑

Transaction And Lock--锁相关基础
摘要:--=======================================================--锁提示--holdlock :将共享锁保留到事务完成,而不是在相应的表、行或数据页不需要时就立即释放锁。holdlock等同于serializable--pagelock :在通常使用单个表锁的地方采用页锁--nolock :不要发出共享锁,并且不要提供排他锁。当此选项生效时,可能会读取未提交的事务或一组在读取中间回滚的页面。--有可能发生脏读。仅应用于select语句;NOLOCK在查询数据时不会被U锁阻塞,但是会被SCH-M锁阻塞;NOLOCK在任何事务隔离级别下效果都一样 阅读全文

posted @ 2014-01-17 15:23 笑东风 阅读(861) 评论(0) 推荐(0) 编辑

INDEX--关于索引的琐碎
摘要:--=========================================================更新时的操作1>更新时有两种方式,一种是在原来的位置更新,另外一种是移除删除再插入。2>无论采用何种方式更新数据,在触发器中都能使用DELETED和INSERTED表来获取更新前和更新后数据。--=========================================================--8亿数据创建非聚集索引时间数据表中数据:873476300建立索引耗时:41分39秒 索引键:BIGINT+DATETIME+INT服务器配置:8核32G内 阅读全文

posted @ 2014-01-17 15:09 笑东风 阅读(273) 评论(0) 推荐(0) 编辑

INDEX--索引相关信息查看
摘要:--==============================================--查看可能缺失的索引SELECT mig.*,migs.*,mid.* FROM sys.dm_db_missing_index_group_stats AS migs INNER JOIN sys.d... 阅读全文

posted @ 2014-01-17 14:55 笑东风 阅读(610) 评论(0) 推荐(0) 编辑

INDEX--索引页上存放那些数据
摘要:由于索引的叶子节点和非叶子节点的作用不同,导致不同类型节点上每行记录存放的数据不同--============================================唯一聚集索引叶子节点:所有有列非叶子节点:索引键+文件ID+页ID--============================================非唯一聚集索引叶子节点:所有有列非叶子节点:索引键+UNIQUFUER列+文件ID+页ID--============================================在聚集表上的唯一非聚集索引叶子节点:非聚集索引+文件ID+页ID非叶子节点:非聚集索引 阅读全文

posted @ 2014-01-17 14:53 笑东风 阅读(879) 评论(0) 推荐(0) 编辑

Transaction And Lock--解决死锁/锁的几种有效方式
摘要:修改资源访问顺序,使多个事务对资源的访问方式一致 优化查询SELECT,使得S锁能尽早释放 均可能将更新和删除语句放到事务末端(使得X锁占用时间最小) 避免事务执行期间暂停或等待外部输入 将较大事务拆分成多个小事务提交 控制事务在合适的隔离级别上运行 建立合适索引提示语句效率 删除无用索引和统计 将数据更新修改为数据插入 将数据拆按状态分到多个表 考虑使用快照解决S锁阻塞X锁 考虑使用程序队列来限制并发数(高并发造成大量的锁等待和上下文切换以及CPU资源消耗) 使用复制等技术将读写分离 在程序段使用缓存来避免对相同数据频繁更新 阅读全文

posted @ 2014-01-16 18:23 笑东风 阅读(605) 评论(0) 推荐(0) 编辑

Transaction And Lock--由Lookup导致的死锁情况
摘要:存在这样情况: 1.表TB1有一列建立索引 2.事务A对表进行更新,先获取对表的X锁以更新基本表中数据,然后对索引申请X锁以更新索引数据。 3.事务B对表进行更新,先获取索引上S锁以使用索引进行Loopup来查询数据,然后申请表的X锁以更新基本表数据 由于事务A和事务B申请到一部分锁资源同时需要对方的锁资源来完成操作,由于锁的不可剥夺性导致死锁产生 解决此类死锁的有效办法: 1.减少每次修改数据的行数,以减少事务的执行时间,从而降低事务发生的可能性 2.在一些情况下使用Include索引来减少lookup操作 阅读全文

posted @ 2014-01-16 18:22 笑东风 阅读(426) 评论(0) 推荐(0) 编辑

Transaction And Lock--由外键导致的死锁
摘要:死锁发生情况:1. 存在表A和表B,表A的主键是表B的外键2.事务A在表A上申请到X锁以修改表A中数据和删除表A中的数据,然后需要检查表B中的数据是否满足外键约束,从而需要Range锁来锁住表B3.事务B在表B上申请到X锁以修改表B中数据,然后向表A申请S锁来查询数据以上情况表造成资源环状阻塞,从而应发死锁。解决办法:1. 从设计角度来看,应避免修改表A中主键的值2. 对表B上的外键列建立索引,从而使事务A发生时将range锁放到索引上,从而降低死锁发生的概率​ 阅读全文

posted @ 2014-01-16 18:20 笑东风 阅读(906) 评论(0) 推荐(0) 编辑

CDC--Demo
摘要:一个很小的CDC Demo和相关操作 阅读全文

posted @ 2014-01-16 18:18 笑东风 阅读(551) 评论(1) 推荐(0) 编辑

Transaction And Lock--在事务中使用TRY CATCH
摘要:在事务中使用TRY CATCH的一些基础 阅读全文

posted @ 2014-01-16 18:15 笑东风 阅读(1579) 评论(0) 推荐(0) 编辑

Transaction And Lock--存储过程中使用事务的模板
摘要:一个存储过程中使用事务的模板 阅读全文

posted @ 2014-01-16 18:14 笑东风 阅读(316) 评论(0) 推荐(0) 编辑

Transaction And Lock--死锁错误号1205
摘要:在TSQL中,如果需要判断当前错误是否是因为死锁引起,可以使用ERROR_NUMBER()=1205来判断 在C#中,使用SQLException来捕获 SQLException.Number=1205代表由死锁引发 使用跟踪标记来查看死锁 1204 返回参与死锁的锁的资源和类型,以及受影响的当前命令。作用域:仅全局 1222 以不符合任何XSD 架构的XML 格式,返回参与死锁的锁的资源和类型,以及受影响的当前命令 阅读全文

posted @ 2014-01-16 18:12 笑东风 阅读(441) 评论(0) 推荐(0) 编辑

Transaction And Lock--已提交读快照
摘要:在事务执行过程中,并不保证两次读取数据一致,当数据在其他事务中修改并提交,再次查询能立即得到最新的数据。 使用快照来保存修改数据的原始版本,读取数据时如数据已经被修改但为提交,则读取快照中的副本数据 --===================================================== 在开启行版本控制后,SQL SERVER 会将行版本数据存放tempdb里,需要考虑tempdb的负载 --===================================================== 优点:有效减少读和写得阻塞,不会读取过时数据和不会引发数据版本冲突 缺点:维护行版本需要额外的开销 阅读全文

posted @ 2014-01-16 18:10 笑东风 阅读(296) 评论(0) 推荐(0) 编辑

Transaction And Lock--两种方式实现可重复读
摘要:一些需求要求两次查询数据之间不允许数据被修改,即可重复读取可重复读REPEATABLE READ与串行化SERIALIZABLE的区别在于串行化要求满足该查询的数据不被修改且无新满足该查询条件的数据插入(使用范围锁),可重复读只要求数据不被修改(保留S锁至事务结束)。而在read commit事务隔离级别下,被更新的数据会被加S锁,并一直保持事务提交或回滚,因此数据在事务区间内不能被其他事务修改,也保证了两次查询得到数据不发生变化(数据的值而不是行数)因此我们可以使用几种方式来保持数据不发生变化:方式1:在提交读隔离级别下使用HOLDLOCKHOLDLOCK相当于SERIALIZABLE隔离级 阅读全文

posted @ 2014-01-16 18:09 笑东风 阅读(387) 评论(0) 推荐(0) 编辑

Transaction And Lock--存在嵌套事务吗?
摘要:在很多编程语言中,可以实现嵌套,但在TSQL中,可以实现嵌套事务吗? 答案:不可以 阅读全文

posted @ 2014-01-16 18:08 笑东风 阅读(372) 评论(0) 推荐(0) 编辑

Transaction And Lock--事务中使用return会回滚事务吗?
摘要:事务中使用return会回滚事务吗? 答案:不会,如果在事务中没有显示提交或回滚事务边return,事务不会被提交或回滚,在C#中,如果没有使用连接池,则事务在连接断开和销毁时被强制回滚,如果使用连接池,则事务在连接被再次使用时调用的exec sp_reset_connection存储过程清理掉。如果该连接没有被再次使用或删除,则事务一直存在,便会一直锁住相关资源不释放,照常日志变大,镜像和复制异常等情况。 阅读全文

posted @ 2014-01-16 18:06 笑东风 阅读(3516) 评论(0) 推荐(0) 编辑

Transcation And Lock--SQL SERVER 事务隔离级别
摘要:SQL SERVER 事务隔离级别:1.未提交读(READ UNCOMMITED) 允许脏读,读取数据时不加共享锁,与使用WITH(NOLOCK)结果相同2.已提交读 不允许脏读,读取数据时加共享锁,但在查询结束后立即释放共享锁,而不用等到事务结束3.可重复读 不允许“不可重复读”,读取数据时加共享锁,将共享锁一直保持到事务结束,从而阻塞其他事务修改被读取的数据4.快照 SQL SERVER 有两种行版本控制,在事务修改数据时,保留一份未修改前的数据副本,其他事务读取数据时访问副本数据,从而有效较少读和写的阻塞 a)已提交读快照隔离(READ_COMMITED_SNAPSHOT) b)SNAP 阅读全文

posted @ 2014-01-16 18:05 笑东风 阅读(229) 评论(0) 推荐(0) 编辑

Transaction And Lock--常用的查询事务和锁的语句
摘要:常用的查询事务和锁的语句 阅读全文

posted @ 2014-01-16 18:04 笑东风 阅读(1126) 评论(0) 推荐(1) 编辑

Transaction And Lock--快照事务隔离级别
摘要:在快照隔离级别下,在事务执行过程中,数据已被外部事务修改并且提交,但查询会得到过时数据(取决于生成快照的第一次时间点在外部事物发生前还是发生后),对过时数据修改会报以下错误: 快照隔离事务由于更新冲突而中止。您无法在数据库'DB5'中使用快照隔离来直接或间接访问表 'dbo.TB1',以便更新、删除或插入已由其他事务修改或删除的行。请重试该事务或更改 update/delete 语句的隔离级别。 阅读全文

posted @ 2014-01-16 18:00 笑东风 阅读(1912) 评论(0) 推荐(1) 编辑

Backup--查看备份的历史记录
摘要:--====================================================--查看数据库备份的详细信息:时间存储地址最大/最小LSNSELECT * FROM msdb.dbo.backupset AS BSINNER JOIN msdb.dbo.backupfile AS BFON BF.backup_set_id=BS.backup_set_idINNER JOIN msdb.dbo.backupmediaset AS BMSON BMS.media_set_id=BS.media_set_idINNER JOIN msdb.dbo.backupmedia 阅读全文

posted @ 2014-01-16 17:56 笑东风 阅读(611) 评论(0) 推荐(0) 编辑

Log--检查各数据库日志的使用情况
摘要:-- Recovery model, log reuse wait description, log file size,-- log usage size and compatibility level for all databases on instanceSELECTdb.[name] AS [Database Name] ,db.recovery_model_desc AS [Recovery Model] ,db.log_reuse_wait_desc AS [Log Reuse Wait Description] ,ls.cntr_value AS [Log Size (KB)] 阅读全文

posted @ 2014-01-16 17:55 笑东风 阅读(503) 评论(0) 推荐(0) 编辑

Log--日志变大原因总结
摘要:1. 有产生大日志操作,如重建整理索引,大量数据修改等2. 长期未提交事务,为保证为提交事务可以回滚,从最早为提交事务开始之后的所有事务,都是活动事务,不能被截断或覆盖3. 日志没有定期备份4. 镜像或复制需要读取但还未读取的日志会被保留,镜像或复制出现错误时,会导致日志无法截断5. 检查点的执行频率过低(被人为修改)6. 用户打开游标但为及时取走数据并关闭右边查看当前日志不能截断的原因SELECT name,DB.log_reuse_wait_desc FROM sys.databases DB​事务日志空间的重用操作当前正在等待下列各项之一:0 = 无1 = 检查点2 = 日志备份3 = 阅读全文

posted @ 2014-01-16 17:53 笑东风 阅读(622) 评论(0) 推荐(1) 编辑

Log--事务日志
摘要:数据库日志相关的一下小知识点 阅读全文

posted @ 2014-01-16 17:51 笑东风 阅读(2060) 评论(0) 推荐(0) 编辑

字符集--相关技巧
摘要:字符集一些相关技巧 阅读全文

posted @ 2014-01-16 16:12 笑东风 阅读(322) 评论(0) 推荐(0) 编辑

字符集--获取中文首字母拼音
摘要:获取中文首字母拼音 阅读全文

posted @ 2014-01-16 16:05 笑东风 阅读(427) 评论(0) 推荐(1) 编辑

字符集--获取中文拼音
摘要:使用TSQL来获取自字符串拼音 阅读全文

posted @ 2014-01-16 16:04 笑东风 阅读(838) 评论(0) 推荐(1) 编辑

字符集--基础知识
摘要:字符集相关的基础知识 阅读全文

posted @ 2014-01-16 16:03 笑东风 阅读(454) 评论(0) 推荐(1) 编辑

DataType--数值类型
摘要:SQL Server数值类型可以分为精确数字类型和近似数字类型 精确数字 BIT/SMALLINT/TINYINT/INT/BIGINT NUMERIC/DECIMAL/SMALLMONEY/MONEY 近似数字 FLOAT/REAL 阅读全文

posted @ 2014-01-16 15:59 笑东风 阅读(8032) 评论(0) 推荐(1) 编辑

DataType--类型基础
摘要:数据类型 数据的定义在各种场合均不一样,数据的载体也不一样,数据的表现方式和传递方式也不一样,数据的处理方式也不一样,数据库不可能处理所有形式的数据,因此必须规范数据,按照类型划分和处理。 阅读全文

posted @ 2014-01-16 15:58 笑东风 阅读(3246) 评论(0) 推荐(0) 编辑

DataType--时间类型
摘要:时间类型占用的空间和精确度 阅读全文

posted @ 2014-01-16 15:48 笑东风 阅读(1417) 评论(0) 推荐(1) 编辑

DateType--字符类型
摘要:字符数据的相关基础知识 阅读全文

posted @ 2014-01-16 15:46 笑东风 阅读(1409) 评论(0) 推荐(1) 编辑

TSQL--时间类型和毫秒数转换
摘要:项目中使用BIGINT来存放时间,以下代码用来转换时间类型和BIGINT类型 阅读全文

posted @ 2014-01-16 15:42 笑东风 阅读(5077) 评论(0) 推荐(0) 编辑

TSQL--删除正在运行的数据库
摘要:删除数据库之前,需要断开所有连接到数据库上的连接,演示如何使用脚本来删除这些连接 阅读全文

posted @ 2014-01-16 15:37 笑东风 阅读(526) 评论(0) 推荐(0) 编辑

Snapshot--使用脚本创建快照
摘要:快速生成SNAPSHOT 脚本 阅读全文

posted @ 2014-01-16 15:34 笑东风 阅读(569) 评论(0) 推荐(0) 编辑

Mirror--日志流压缩
摘要:在SQL SERVER 2008之后,主库和镜像库之间的日志流传送会默认使用压缩,压缩一方面降低了网络压力,另一方面增大了镜像两端的CPU压力。 可以打开 TF 1462 来关闭日志流压缩 SQL SERVER 2005 上日志传送没有使用压缩 阅读全文

posted @ 2014-01-15 23:36 笑东风 阅读(256) 评论(0) 推荐(0) 编辑

Mirror--如何TSQL查看镜像状态和镜像相关存储过程
摘要:查看镜像状态的TSQL和相关存储过程 阅读全文

posted @ 2014-01-15 23:22 笑东风 阅读(1800) 评论(0) 推荐(1) 编辑

Mirror--如何对运行中的镜像端点更换证书
摘要:如果使用证书配置镜像时,没有设置证书的时间,则默认证书有效期为一年,当证书快过期时,需要更换证书。本文演示如何对正在运行的镜像更换证书 阅读全文

posted @ 2014-01-15 23:18 笑东风 阅读(854) 评论(0) 推荐(0) 编辑

Mirror--程序访问镜像数据库的超时机制
摘要:程序在访问有镜像的数据库和无镜像的数据库时,采用的链接超时时间算法不一样,因此会导致在在有镜像的数据库上设置了15 S的超时时间,而实际的超时时间仅为3.6 S,从而导致有镜像的数据库更容易超时。 阅读全文

posted @ 2014-01-15 23:09 笑东风 阅读(569) 评论(0) 推荐(0) 编辑

Mirror--镜像使用的工作线程数
摘要:在一个实例上,并不能无限制地搭建镜像,原因是每个镜像使用多个work来同步。 阅读全文

posted @ 2014-01-15 22:56 笑东风 阅读(328) 评论(0) 推荐(0) 编辑

Mirror--镜像断开的解决办法
摘要:一些镜像断开的常见解决办法 阅读全文

posted @ 2014-01-15 22:54 笑东风 阅读(1945) 评论(0) 推荐(1) 编辑

Mirror--生成用于镜像用户同步的脚本
摘要:一个快速生成镜像用户的脚本 阅读全文

posted @ 2014-01-15 22:49 笑东风 阅读(465) 评论(0) 推荐(0) 编辑

Mirror--使用证书配置镜像模板
摘要:Mirror--使用证书配置镜像模板 阅读全文

posted @ 2014-01-15 22:46 笑东风 阅读(802) 评论(1) 推荐(0) 编辑

Mirror--镜像相关操作
摘要:镜像相关的操作,方便快速管理镜像 阅读全文

posted @ 2014-01-15 22:45 笑东风 阅读(717) 评论(0) 推荐(0) 编辑

Mirror--镜像相关错误
摘要:一个镜像相关的8474错误 阅读全文

posted @ 2014-01-15 22:44 笑东风 阅读(842) 评论(0) 推荐(0) 编辑

Mirror--自增键在镜像中的影响
摘要:假设故障转移前自增列的当前值为 X , 在故障转移后,自增列的初始值会变成:((X/1000)+1)*1000+1 扩展: 在SQL SERVER 2012 的 ALWAYSON 上依然存在此问题 阅读全文

posted @ 2014-01-15 22:42 笑东风 阅读(322) 评论(0) 推荐(0) 编辑

Mirror--镜像用户同步
摘要:如何实现镜像的用户同步 阅读全文

posted @ 2014-01-15 22:41 笑东风 阅读(886) 评论(0) 推荐(0) 编辑

TSQL--SET ANSI_NULLS OFF
摘要:当ANSI_NULLS 为ON时,遵循SQL92的标准,只能使用IS NULL 来判断值是否为NULL, 而不能使用=或来与NULL做比较,任何值包括NULL值与NULL值做=或运算都得到FALSE 当ANSI_NULLS为OFF时,将不再遵循SQL92标准,可以使用=和来与NULL做BOOL运算 阅读全文

posted @ 2014-01-15 22:39 笑东风 阅读(2923) 评论(0) 推荐(1) 编辑

Replication--复制问答
摘要:复制遇到的一些问题和答案 阅读全文

posted @ 2014-01-15 17:55 笑东风 阅读(370) 评论(4) 推荐(1) 编辑

Replication--数据库镜像阻塞复制日志读取器的解决的办法
摘要:问题描述: 在同一数据库上使用镜像和复制,为保证镜像切换后,复制还能继续,因此当镜像断开或暂停时,复制日志读取器会被阻塞直到日志被同步到镜像从服务器端(无论异步还是同步)。 日志状态显示:复制的事务正等待下一次日志备份或等待镜像伙伴更新 解决办法:打开Trace flag 1448,在高性能和高安全下同样有效 DBCC TRACEON(1448,-1) 1448 甚至在异步辅助数据库不确认接受更改的情况下,也使复制日志读取器前移。 甚至在此跟踪标志启用的情况下,日志读取器也始终等待同步辅助数据库。 日志读取器将不会超过同步辅助数据库的最小确认。 此跟踪标志应用于SQL Server 的实例,而不仅是可用性组、可用性数据库或日志读取器实例。 应用会立即生效,无需重新启动。 此跟踪标志可提前激活或在同步辅助数据库失败时激活。 ​ 阅读全文

posted @ 2014-01-15 17:44 笑东风 阅读(1324) 评论(4) 推荐(1) 编辑

Replication--复制笔记1
摘要:1.快照复制和事务复制使用分发代理传递文件,而合并复制使用合并代理来传递文件 2.快照代理在分发服务器上运行 3.在创建快照是,根据复制的类型对发布表的加锁方式而不同 a)对应合并发布,快照代理不适用热河锁 b)对应事务发布,默认情况下快照代理只在快照生成的初始阶段使用锁 c)对应快照腹部,整个快照生成过程中使用锁 4. 快照复制发布表中数据,生成BCP文件,存放到快照文件夹中。 5. 快照读取发布表的架构,生成sch文件,其他数据库对象如索引+约束+存储过程+视图+udf等生成脚本文件 6. 日志读取器代理使用内部存储过程sp_replcmds从日志中获取标记为要复制的下一个命令集 7. 自增键在订阅端始终保持自增值(IDENT_CURRENT)不变,当订阅端被切换成读写后,需要手动执行DBCC CHECKIDENT ( table_name) 阅读全文

posted @ 2014-01-15 17:36 笑东风 阅读(290) 评论(0) 推荐(0) 编辑

Replication--将LSN转换成16进制
摘要:在复制中经常会使用到16进制的LSN,但在日志fn_dblog中的LSN是数字形式,于是从网上找到以下转换函数 CREATE FUNCTION dbo.fn_convertnumericlsntobinary 阅读全文

posted @ 2014-01-15 17:30 笑东风 阅读(408) 评论(0) 推荐(0) 编辑

Replication--使用备份初始化订阅--推送订阅
摘要:使用备份初始化订阅--推送订阅 阅读全文

posted @ 2014-01-15 17:25 笑东风 阅读(579) 评论(0) 推荐(0) 编辑

Replication--使用备份初始化订阅--请求订阅
摘要:使用备份初始化订阅--请求订阅 阅读全文

posted @ 2014-01-15 17:23 笑东风 阅读(1117) 评论(0) 推荐(1) 编辑

Replication--发布属性immediate_sync
摘要:发布属性immediate_sync相关基础 阅读全文

posted @ 2014-01-15 17:20 笑东风 阅读(627) 评论(0) 推荐(0) 编辑

Replication--Alwayson+复制发布
摘要:Alwayson+复制发布 阅读全文

posted @ 2014-01-15 17:17 笑东风 阅读(594) 评论(1) 推荐(0) 编辑

Replication--Alwayson+订阅
摘要:演示如何在订阅端使用AO 阅读全文

posted @ 2014-01-15 17:15 笑东风 阅读(393) 评论(0) 推荐(0) 编辑

Replication--修改复制代理配置来查看代理运行情况
摘要:正常情况下,复制代理运行不会记录详细信息,需要手动修改。 阅读全文

posted @ 2014-01-15 17:12 笑东风 阅读(369) 评论(0) 推荐(0) 编辑

Replication--复制Token
摘要:使用Token来检查复制延迟 阅读全文

posted @ 2014-01-15 16:52 笑东风 阅读(1192) 评论(0) 推荐(0) 编辑

Replication--镜像+复制
摘要:演示如何实现镜像+复制的高可用性 阅读全文

posted @ 2014-01-15 16:51 笑东风 阅读(269) 评论(0) 推荐(0) 编辑

Replication--分区+复制
摘要:演示如何在复制中使用分区 阅读全文

posted @ 2014-01-15 16:48 笑东风 阅读(434) 评论(0) 推荐(0) 编辑

Replication--进程无法在“xxxx”上执行“sp_replcmds”
摘要:错误消息:进程无法在“xxxx”上执行“sp_replcmds”。 (源: MSSQL_REPL,错误号: MSSQL_REPL20011)获取帮助: http://help/MSSQL_REPL20011无法作为数据库主体执行,因为主体 "dbo" 不存在、无法模拟这种类型的主体,或您没有所需的权限。 (源: MSSQLServer,错误号: 15517)获取帮助: http://help/15517进程无法在“xxxx”上执行“sp_replcmds”。 (源: MSSQL_REPL,错误号: MSSQL_REPL22037)获取帮助: http://help/MSSQ 阅读全文

posted @ 2014-01-15 16:42 笑东风 阅读(3921) 评论(0) 推荐(0) 编辑

Replication--无法将事务提升为分布式事务,因为在事务中有活动的保存点
摘要:场景描述 在SQL SERVER 2012上创建事务发布,发布库已搭建为可AWAYSON,分发服务器和发布服务器分离,创建发布时提示“无法将事务提升为分布式事务,因为在事务中有活动的保存点” 解决方法 EXEC sp_configure 'remote proc trans', '0'; RECONFIGURE; 阅读全文

posted @ 2014-01-15 16:26 笑东风 阅读(1942) 评论(0) 推荐(0) 编辑

Replication--复制延迟的诊断和解决
摘要:--====================================================================--检查当前服务上那些数据库搭建了发布SELECT name,is_published FROM sys.databases WITH(NOLOCK)WHERE is_published = 1AND state = 0--====================================================================--检查发布设置,在发布的数据库上运行SELECTname AS ReplicationName,[ 阅读全文

posted @ 2014-01-15 16:16 笑东风 阅读(315) 评论(0) 推荐(0) 编辑

Replication--使用MSlogreader_history查看日志读起的延迟和事务命令
摘要:--========================================================================MSlogreader_history 表存放本地分发服务器关联的日志读取器代理的历史记录time记录消息的时间。delivery_latency命令从进入发布数据库到进入分发数据库之间的滞后时间。delivered_transactions会话中传递的事务总数。delivered_commands会话中传递的命令总数。average_commands会话中传递的平均命令数。--=================================== 阅读全文

posted @ 2014-01-15 16:14 笑东风 阅读(444) 评论(0) 推荐(0) 编辑

Partition--分区拆分和分区合并
摘要:演示如何对分区进行拆分和合并 阅读全文

posted @ 2014-01-15 11:27 笑东风 阅读(2883) 评论(0) 推荐(0) 编辑

Partition--分区切换2
摘要:如果将活跃表中的数据切换到历史表中 阅读全文

posted @ 2014-01-15 11:25 笑东风 阅读(240) 评论(0) 推荐(0) 编辑

Partition--分区切换
摘要:演示如何将数据切出/切入分区 阅读全文

posted @ 2014-01-15 11:23 笑东风 阅读(350) 评论(0) 推荐(0) 编辑

Partition--分区总结
摘要:关于分区表的一些总结 阅读全文

posted @ 2014-01-15 11:22 笑东风 阅读(2600) 评论(3) 推荐(1) 编辑

Partition--分区Demo
摘要:一个简单的分区Demo,用来演示分区的相关的语法基础 阅读全文

posted @ 2014-01-15 11:21 笑东风 阅读(600) 评论(0) 推荐(0) 编辑

IO--性能计数器
摘要:--在分析磁盘队列时,应参考数据库的其他计数器,如CheckPint Pages/Sec语句Memory对象的 --Page Output/Sec和Page Input/SecD等数据,查看磁盘队列是写入队列还是读取队列, --对于读取队列过大的情况,应该检查是否有内存压力或优化SQL --对于写入队列过大的情况,考虑镜像/日志/Check Point等因素 --不合适的聚簇索引和过多的非聚簇索引会造成磁盘写入压力 阅读全文

posted @ 2014-01-15 11:18 笑东风 阅读(904) 评论(0) 推荐(0) 编辑

IO--常用的IO问题查询语句
摘要:常用的IO问题查询语句 阅读全文

posted @ 2014-01-15 11:17 笑东风 阅读(1834) 评论(0) 推荐(0) 编辑

IO--RAID
摘要:RAID IO计算 Raid 0 –每个磁盘的I/O计算= (读+写) /磁盘个数 Raid 1 --每个磁盘的I/O计算= [读+(2*写)]/2 Raid 5 --每个磁盘的I/O计算= [读+(4*写)]/磁盘个数 Raid 10 --每个磁盘的I/O计算= [读+(2*写)]/磁盘个数 阅读全文

posted @ 2014-01-15 11:13 笑东风 阅读(813) 评论(0) 推荐(0) 编辑

IO--磁盘理论
摘要:磁盘读写数据开销: 1.寻道时间,磁盘臂移动到特定磁道的开销=启动磁盘臂开销+所需移动磁道数*特定常量 2.扭转延迟:将目标扇区移动到磁头的时间,与磁盘转数成反比 3.数据传输:从磁盘读取/写入数据的开销=读写文件大小/(每秒转数*每扇区字节数) 阅读全文

posted @ 2014-01-15 11:11 笑东风 阅读(351) 评论(0) 推荐(0) 编辑

AgentJob--修改操作系统时间对Job的影响
摘要:在系统管理员修改操作系统时间时,需要考虑该操作对数据库的影响: 1>对Job的影响 2>对业务中使用到系统时间的影响,如根据当前时间删除六小时之前的历史数据等。 阅读全文

posted @ 2014-01-15 10:03 笑东风 阅读(470) 评论(0) 推荐(0) 编辑

Backup--批量备份和还原
摘要:批量备份和还原的脚本 阅读全文

posted @ 2014-01-14 23:30 笑东风 阅读(1840) 评论(0) 推荐(2) 编辑

TSQL--NESTED LOOPS JOIN
摘要:NESTED LOOPS JOIN 阅读全文

posted @ 2014-01-14 23:22 笑东风 阅读(246) 评论(0) 推荐(0) 编辑

TSQL--SORT MERGE JOIN
摘要:SORT MERGE JOIN 阅读全文

posted @ 2014-01-14 23:21 笑东风 阅读(311) 评论(0) 推荐(0) 编辑

TSQL--HASH JOIN
摘要:HASH JOIN 阅读全文

posted @ 2014-01-14 23:20 笑东风 阅读(170) 评论(0) 推荐(0) 编辑

Backup--备份相关的信息查看及小技巧
摘要:备份中使用到的一些小技巧和SQL 阅读全文

posted @ 2014-01-14 23:16 笑东风 阅读(627) 评论(0) 推荐(0) 编辑

Backup--备份基础理论
摘要:一些基础的SQL SERVER 备份知识 阅读全文

posted @ 2014-01-14 23:11 笑东风 阅读(466) 评论(0) 推荐(1) 编辑

Backup--完整备份会打破现有的日志备份链么?
摘要:完整备份会打破现有的日志备份链么 阅读全文

posted @ 2014-01-14 23:08 笑东风 阅读(505) 评论(0) 推荐(0) 编辑

Backup--如何快速截断日志
摘要:在日志文件较大但又无需备份的情况下快速截断日志,以便收缩日志文件呢? 阅读全文

posted @ 2014-01-14 23:03 笑东风 阅读(4109) 评论(1) 推荐(2) 编辑

Backup--修改实例级别是否使用压缩备份的默认值
摘要:如何配置实例将备份默认设置为压缩备份 阅读全文

posted @ 2014-01-14 23:00 笑东风 阅读(241) 评论(0) 推荐(0) 编辑

Backup--BUFFERSIZE 和BUFFERCOUNT
摘要:BUFFERSIZE 和BUFFERCOUNT对备份的影响 阅读全文

posted @ 2014-01-14 22:58 笑东风 阅读(564) 评论(0) 推荐(0) 编辑

Backup--压缩备份和TDE
摘要:1>对启用TDE的数据库,压缩备份的备份文件大小与未压缩备份的备份文件大小差不多(压缩比为 1 ) 2>对启用TDE的数据库,压缩备份的备份时间远高于未压缩备份 2>对启用TDE的数据库,压缩备份所占用的CPU远高于未压缩备份 阅读全文

posted @ 2014-01-14 22:46 笑东风 阅读(311) 评论(0) 推荐(0) 编辑

Backup--压缩备份和数据库压缩
摘要:数据库压缩对压缩备份的影响 1> 即使数据库启用了页压缩或行压缩,压缩备份也可以有效减小备份的大小,压缩备份的压缩效率取决于表中的数据类型 2> 数据库压缩有利于降低备份时间(因为数据库变小) 3> 对已启用压缩的数据库进行压缩备份,CPU消耗会变得更高 阅读全文

posted @ 2014-01-14 22:44 笑东风 阅读(847) 评论(0) 推荐(0) 编辑

Backup--清理MSDB中的备份记录
摘要:使用sp_delete_backuphistory来清理以下表中数据 阅读全文

posted @ 2014-01-14 22:40 笑东风 阅读(550) 评论(0) 推荐(0) 编辑

包含数据库--相关设置
摘要:配置包含数据库用到的相关SQL 阅读全文

posted @ 2014-01-14 22:37 笑东风 阅读(372) 评论(0) 推荐(0) 编辑

包含数据库--基础介绍
摘要:基础介绍 阅读全文

posted @ 2014-01-14 22:36 笑东风 阅读(563) 评论(0) 推荐(0) 编辑

XML--使用XML来将字符串分隔成行数据
摘要:使用XML来将字符串分隔成行数据 阅读全文

posted @ 2014-01-14 18:59 笑东风 阅读(587) 评论(0) 推荐(0) 编辑

XML--将XML中数据提取出转换成表2
摘要:将XML 装换成表 阅读全文

posted @ 2014-01-14 18:58 笑东风 阅读(488) 评论(0) 推荐(0) 编辑

XML--将XML中数据提取出转换成表
摘要:将XML中数据提取出转换成表 阅读全文

posted @ 2014-01-14 18:57 笑东风 阅读(3804) 评论(1) 推荐(0) 编辑

XML--修改XML数据
摘要:修改XML数据的基本语法 阅读全文

posted @ 2014-01-14 18:56 笑东风 阅读(611) 评论(0) 推荐(0) 编辑

XEvent--Demo--使用XEvent来捕获在数据库DB1上发生的锁请求和锁释放
摘要:使用XEvent来捕获在数据库DB1上发生的锁请求和锁释放 阅读全文

posted @ 2014-01-14 18:53 笑东风 阅读(399) 评论(0) 推荐(0) 编辑

XEvent--基础
摘要:XEvent的基础 阅读全文

posted @ 2014-01-14 18:51 笑东风 阅读(1641) 评论(0) 推荐(0) 编辑

Tempdb--Allocation Bottleneck
摘要:Alloctaion bottleneck refers to contention in the system pages that store allocation structures.PFS(Page Free Space): used to track the followint info... 阅读全文

posted @ 2014-01-14 18:48 笑东风 阅读(300) 评论(0) 推荐(0) 编辑

Tempdb--Snapshot
摘要:The insert operation does not cause a row version to be generated because there is really no prvious version of the row being inserted.both deleted and update operations lead to row versions.demo:USE masterGO---------------------------------------------------------------------创建SnapTestDB数据库,并将数据库开启 阅读全文

posted @ 2014-01-14 18:47 笑东风 阅读(419) 评论(0) 推荐(0) 编辑

Tempdb--monitoring and troubleshooting
摘要:TempDB用来存放临时表、全局临时表、表变量以及排序或HASH等操作引发的中间结果集TempDB在每次实例重启时重新创建,TempDB数据库文件的初始化大小取决于Model数据库的文件大小或显示ALTER语句设置的TempDB的文件文件大小在每个数据库文件中,分配页(allocation page)ID:PFS:1GAM:2SGAM:3一个PFS页能覆盖8088个数据页,一个GAM或SGAM页能覆盖511232个数据页,当一个文件超过响应数据页数,SQL SERVER 使用分配页(allocation page)链来覆盖。----------------------------------- 阅读全文

posted @ 2014-01-14 18:46 笑东风 阅读(344) 评论(0) 推荐(0) 编辑

Tempdb--Row version
摘要:Trigger:在SQL SERVER 2005之前,触发器需要使用日志来获取DELETED AND INSERTED的数据,因此会打乱日志顺序写的模式,造成磁盘压力,在SQL Server2005 之后,触发器改用行版本来获取DELETED AND INSERTED,从而减少对磁盘的影响,但增加对TempDB的压力Online Index: 在创建或重建索引时,可以指定ONLINE选项,当ONLINE=TURE时,只有在Index开始和结束时才申请表锁,其余时间用户可以操作和访问表中数据。SQL server使用row version来保持索引建立期间相同的数据视图,数据版本存储在TempD 阅读全文

posted @ 2014-01-14 18:45 笑东风 阅读(330) 评论(0) 推荐(0) 编辑

Tempdb--TempDB Basic
摘要:1. TempDB只能运行在Simple Recovery Model下2. 由于TempDB不需要Recovery,因此在TempDB中发生的操作不需要REDO,因此在日志记录上有别于其他数据库。3. 不是所有在Tempdb中的object都被记录日志。4. Improved cahcing for tempory objects, SQL Server chaches 1 IAM Page and 1 data page with the associated query plan.First, if the same plan is exected multiple times, the 阅读全文

posted @ 2014-01-14 18:44 笑东风 阅读(308) 评论(0) 推荐(0) 编辑

Tempdb--查看tempdb使用的脚本
摘要:监视tempdb的脚本 阅读全文

posted @ 2014-01-14 18:39 笑东风 阅读(772) 评论(0) 推荐(1) 编辑

Tempdb--查看TempDB上是否需要增加文件
摘要:如何判断tempdb上存在分配页瓶颈 阅读全文

posted @ 2014-01-14 18:31 笑东风 阅读(573) 评论(0) 推荐(0) 编辑

Tempdb--临时对象缓存
摘要:SQL Server删除一个临时对象时,不移除该对象的条目,当再次使用时,就无须重新创建临时对象,SQL Server为临时对象缓存一个数据页和一个IAM页,并回收剩余页,如果临时表的大小超过8MB,回收会异步进行。 阅读全文

posted @ 2014-01-14 18:20 笑东风 阅读(213) 评论(0) 推荐(0) 编辑

TSQL--聚合函数
摘要:聚合函数相关的基础知识 阅读全文

posted @ 2014-01-14 18:17 笑东风 阅读(222) 评论(0) 推荐(0) 编辑

TSQL--集合处理
摘要:UNION ALL 返回两个结果集中所有的行,返回结果集中会存在重复行 UNION 返回两个结果集中去重的行,返回结果集中无重复行 INTERSECT 返回两个结果集都有的行,返回结果集中无重复行 EXCEPT 返回第一个结果集中有而第二个结果集中没有的行,返回结果集中无重复行 在以上四中集合运算中,两个NULL会被认为相等 阅读全文

posted @ 2014-01-14 18:14 笑东风 阅读(225) 评论(0) 推荐(1) 编辑

TSQL--逻辑查询处理
摘要:逻辑查询处理相关处理 阅读全文

posted @ 2014-01-14 18:12 笑东风 阅读(338) 评论(0) 推荐(1) 编辑

TSQL--TOP选项
摘要:TOP 相关的基础 阅读全文

posted @ 2014-01-14 18:11 笑东风 阅读(345) 评论(0) 推荐(1) 编辑

TSQL--NULL值和三值逻辑
摘要:在SQL SERVER 中逻辑表达式存在三种值:TRUE+FALSE+UNKNOWN,而SQL Server不同场景下对UNKNOWN处理不同,对NULL的对待也不同 阅读全文

posted @ 2014-01-14 18:08 笑东风 阅读(791) 评论(0) 推荐(0) 编辑

TSQL--INT转换成指定长度字符串
摘要:将INT值 101 装换成指定长度 000101 类似的字符串 阅读全文

posted @ 2014-01-14 18:07 笑东风 阅读(1551) 评论(0) 推荐(0) 编辑

TSQL--自增键和索引对表的插入效率测试
摘要:问题描述: 数据库操作中,需要对表频繁插入数据,但发现插入效率不高。 解决思路: 将数据缓存在服务器上,积攒到一定条数后批处理发送到数据库,在插入时考虑并发和索引对插入效率的影响。 阅读全文

posted @ 2014-01-14 18:02 笑东风 阅读(619) 评论(0) 推荐(0) 编辑

TSQL--标示列、GUID 、序列
摘要:标示列、GUID 、序列相关的基础知识 阅读全文

posted @ 2014-01-14 17:58 笑东风 阅读(771) 评论(0) 推荐(0) 编辑

TSQL--使用CTE完成递归查询
摘要:如果使用CTE来完成递归查询 阅读全文

posted @ 2014-01-14 17:55 笑东风 阅读(246) 评论(0) 推荐(0) 编辑

TSQL--SQL SERVER 常用系统变量
摘要:SQL SERVER 常用系统变量 阅读全文

posted @ 2014-01-14 17:50 笑东风 阅读(668) 评论(0) 推荐(2) 编辑

TSQL--关联更新和删除
摘要:简单演示如何两表关联来删除或更新数据 阅读全文

posted @ 2014-01-14 17:45 笑东风 阅读(321) 评论(0) 推荐(1) 编辑

误区30日谈25-30
摘要:误区30日谈25-30 阅读全文

posted @ 2014-01-14 14:48 笑东风 阅读(250) 评论(0) 推荐(0) 编辑

误区30日谈21-24
摘要:误区30日谈21-24 阅读全文

posted @ 2014-01-14 14:47 笑东风 阅读(215) 评论(0) 推荐(0) 编辑

误区30日谈16-20
摘要:误区30日谈16-20 阅读全文

posted @ 2014-01-14 14:46 笑东风 阅读(191) 评论(0) 推荐(0) 编辑

误区30日谈11-15
摘要:误区30日谈11-15 阅读全文

posted @ 2014-01-14 14:45 笑东风 阅读(161) 评论(0) 推荐(0) 编辑

误区30日谈6-10
摘要:误区30日谈6-10 阅读全文

posted @ 2014-01-14 14:44 笑东风 阅读(162) 评论(0) 推荐(0) 编辑

误区30日谈1-5
摘要:误区30日谈1-5 阅读全文

posted @ 2014-01-14 14:43 笑东风 阅读(251) 评论(0) 推荐(0) 编辑

误区30日谈--简介
摘要:--此系列文章由宋沄剑翻译自 sqlskill.com的PAUL --为浏览方便大面积全文复制 --参考链接: --http://www.cnblogs.com/CareySon/archive/2012/10/19/2730647.html 阅读全文

posted @ 2014-01-14 14:41 笑东风 阅读(228) 评论(0) 推荐(0) 编辑

Buffer Pool--内存总结2
摘要:内存总结2 阅读全文

posted @ 2014-01-14 14:38 笑东风 阅读(653) 评论(0) 推荐(0) 编辑

Buffer Pool--内存总结1
摘要:内存总结1 阅读全文

posted @ 2014-01-14 14:37 笑东风 阅读(649) 评论(0) 推荐(0) 编辑

Buffer Pool--数据库内存结构
摘要:数据库从操作系统申请到的内存可分为两部分: 1.缓存池内存(数据也和空闲页) 2.非缓存池内存(线程/DLL/连接服务器等) 阅读全文

posted @ 2014-01-14 14:36 笑东风 阅读(2114) 评论(0) 推荐(0) 编辑

Buffer Pool--内存相关术语
摘要:内存相关术语 阅读全文

posted @ 2014-01-14 14:35 笑东风 阅读(370) 评论(0) 推荐(0) 编辑

Buffer Pool--SQL Server:Buffer Manager 对象
摘要:SQL Server:Buffer Manager 对象 阅读全文

posted @ 2014-01-14 14:31 笑东风 阅读(1971) 评论(1) 推荐(0) 编辑

Buffer Pool--SQL Server:Memory Manager 对象
摘要:SQL Server:Memory Manager 对象 阅读全文

posted @ 2014-01-14 14:29 笑东风 阅读(635) 评论(0) 推荐(0) 编辑

Buffer Pool--锁定内存页
摘要:锁定内存页 阅读全文

posted @ 2014-01-14 14:25 笑东风 阅读(1634) 评论(0) 推荐(0) 编辑

疑难杂症--在Windows Server 2008 R2上运行SQL Server 2008情况下,CPU过多导致的问题
摘要:在Windows Server 2008 R2上运行SQL Server 2008情况下,CPU过多导致的问题 阅读全文

posted @ 2014-01-14 14:22 笑东风 阅读(2171) 评论(0) 推荐(0) 编辑

LinkServer--访问远程数据表三种方式
摘要:访问远程数据表三种方式 阅读全文

posted @ 2014-01-14 14:18 笑东风 阅读(1191) 评论(0) 推荐(0) 编辑

AgentJob--无法重启Job--22022错误
摘要:AgentJob--无法重启Job--22022错误 阅读全文

posted @ 2014-01-14 14:15 笑东风 阅读(2740) 评论(0) 推荐(0) 编辑

LinkServer--服务器选项
摘要:Link Server属性中服务器选项 阅读全文

posted @ 2014-01-14 14:03 笑东风 阅读(605) 评论(0) 推荐(0) 编辑

LinkServer--在Job中使用Linkserver注意事项
摘要:如果在Job中使用Linkserver 阅读全文

posted @ 2014-01-14 14:01 笑东风 阅读(444) 评论(0) 推荐(0) 编辑

DBCC--常用命令
摘要:网上收集的常用DBCC 命令 阅读全文

posted @ 2014-01-14 12:35 笑东风 阅读(2145) 评论(0) 推荐(0) 编辑

DBCC--LOG
摘要:DBCC LOG 查看虚拟日志文件 阅读全文

posted @ 2014-01-14 12:33 笑东风 阅读(2139) 评论(0) 推荐(0) 编辑

DBCC--SQLPERF
摘要:​提供所有数据库的事务日志空间使用情况统计信息。也可以用于重置等待和闩锁的统计信息。 阅读全文

posted @ 2014-01-14 12:32 笑东风 阅读(1672) 评论(0) 推荐(0) 编辑

DBCC--OPENTRAN
摘要:返回最早开始的但仍在运行的事务 阅读全文

posted @ 2014-01-14 12:25 笑东风 阅读(293) 评论(0) 推荐(0) 编辑

DBCC--常用跟踪标记
摘要:DBCC 常用跟踪标记 阅读全文

posted @ 2014-01-14 12:24 笑东风 阅读(1001) 评论(0) 推荐(0) 编辑

DBCC--SHOWCONTIG
摘要:DBCC SHOWCONTIG是显示指定的表的数据和索引的碎片信息。 阅读全文

posted @ 2014-01-14 12:22 笑东风 阅读(650) 评论(0) 推荐(0) 编辑

DBCC--CHECKIDENT
摘要:检查活或重置自增键的标识值 阅读全文

posted @ 2014-01-14 12:21 笑东风 阅读(465) 评论(0) 推荐(0) 编辑

DBCC--EXTENTINFO/IND/PAGE--显示数据页信息
摘要:如何查看数据存放在数据页中 阅读全文

posted @ 2014-01-14 12:20 笑东风 阅读(473) 评论(0) 推荐(0) 编辑

DBCC--CHECKDB--使用快照还是表锁
摘要:DBCC CHECK运行在TABLOCK模式和运行在快照模式的不同 阅读全文

posted @ 2014-01-14 12:17 笑东风 阅读(428) 评论(0) 推荐(0) 编辑

DBCC--CHECKDB--结果收集
摘要:将DBCC CHECKDB的执行加过放入表中 阅读全文

posted @ 2014-01-14 12:14 笑东风 阅读(544) 评论(0) 推荐(0) 编辑

DBCC--CHECKDB--不可被替代的原因
摘要:DBCC CHECKDB不可被替代的原因 阅读全文

posted @ 2014-01-14 12:13 笑东风 阅读(390) 评论(0) 推荐(0) 编辑

DBCC--CHECKDB
摘要:DBCC CHECKDB 阅读全文

posted @ 2014-01-14 12:12 笑东风 阅读(7857) 评论(0) 推荐(0) 编辑

DBCC--SHRINKDATABASE
摘要:DBCC SHRINKDATABASE 阅读全文

posted @ 2014-01-14 12:10 笑东风 阅读(7823) 评论(0) 推荐(0) 编辑

数据库选项--数据库状态
摘要:OFFLINE数据库已关闭、完全关闭并标记为脱机。 数据库脱机时,不能进行修改。ONLINE该数据库已打开且可用。EMERGENCY数据库标记为 READ_ONLY,已禁用日志记录,并且仅限 sysadmin 固定服务器角色的成员进行访问。 EMERGENCY 主要用于故障排除。 例如,可以将由于损坏了日志文件而标记为可疑的数据库设置为 EMERGENCY 状态。 这样,系统管理员便可对数据库进行只读访问。 只有 sysadmin 固定服务器角色的成员才可以将数据库设置为 EMERGENCY 状态。 阅读全文

posted @ 2014-01-14 12:07 笑东风 阅读(346) 评论(0) 推荐(0) 编辑

数据库选项--访问控制
摘要:控制用户对数据库的访问。SINGLE_USER指定一次只能有一个用户可以访问数据库。 如果指定了 SINGLE_USER,但已有其他用户连接到数据库,则 ALTER DATABASE 语句将被阻止,直到所有用户都断开与指定数据库的连接为止。 若要取代此行为,请参阅 WITH 子句。即使设置此选项的用户已注销,数据库仍保持 SINGLE_USER 模式。 这时,其他用户(但只能是一个)可以连接到数据库。在将数据库设置为 SINGLE_USER 之前,应验证 AUTO_UPDATE_STATISTICS_ASYNC 选项是否设置为 OFF。 设置为 ON 时,用于更新统计信息的后台线程将与数据库. 阅读全文

posted @ 2014-01-14 12:03 笑东风 阅读(746) 评论(0) 推荐(0) 编辑

数据库选项--强制参数化
摘要:控制参数化选项。PARAMETERIZATION { SIMPLE | FORCED }SIMPLE查询的参数化是根据数据库的默认行为进行的。FORCEDSQL Server 对数据库中的所有查询进行参数化。可通过查看 sys.databases 目录视图中的 is_parameterization_forced 列确定此选项的当前设置。 阅读全文

posted @ 2014-01-14 12:02 笑东风 阅读(281) 评论(0) 推荐(0) 编辑

数据库选项--触发器
摘要:RECURSIVE_TRIGGERS { ON | OFF }ON允许递归激发 AFTER 触发器。OFF仅不允许直接递归激发 AFTER 触发器。 若还要禁用 AFTER 触发器的间接递归触发,请使用 sp_configure,将 nested triggers 服务器选项设置为 0。当 RECURSIVE_TRIGGERS 设置为 OFF 时,只禁止直接递归触发。 若要禁用间接递归触发,还必须将 nested triggers 服务器选项设置为 0。可通过查看 sys.databases 目录视图中的 is_recursive_triggers_on 列或 DATABASEPROPERTY 阅读全文

posted @ 2014-01-14 12:01 笑东风 阅读(422) 评论(0) 推荐(0) 编辑

数据库选项--会刷新过程缓存的选项
摘要:通过设置以下选项之一来清除 SQL Server 实例的计划缓存:OFFLINEREAD_WRITEONLINEMODIFY FILEGROUP DEFAULTMODIFY_NAMEMODIFY FILEGROUP READ_WRITECOLLATEMODIFY FILEGROUP READ_ONLYREAD_ONLY在下列情况下,也会刷新过程缓存。•数据库的 AUTO_CLOSE 数据库选项设置为 ON。 在没有用户连接引用或使用该数据库时,后台任务将尝试关闭并自动关闭数据库。•针对具有默认选项的数据库运行多个查询。 然后,删除数据库。•删除源数据库的数据库快照。•您已成功重新生成数据库的事 阅读全文

posted @ 2014-01-14 12:00 笑东风 阅读(579) 评论(0) 推荐(0) 编辑

数据库选项--页面检查
摘要:数据库页检查的设置选项 阅读全文

posted @ 2014-01-14 11:59 笑东风 阅读(835) 评论(0) 推荐(0) 编辑

数据库选项--自动更新统计
摘要:AUTO_UPDATE_STATISTICS 和AUTO_UPDATE_STATISTICS_ASYNC 相关 阅读全文

posted @ 2014-01-14 11:56 笑东风 阅读(2287) 评论(0) 推荐(0) 编辑

数据库选项--ALTER DATABASE WITH 选项
摘要:指定当数据库从一种状态转换到另一种状态时,何时回滚未完成的事务。 如果终止子句被忽略,则当数据库中存在任何锁时,ALTER DATABASE 语句将无限期等待。 只能指定一条终止子句,而且该子句应跟在 SET 子句后面。ROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATE指定是在指定秒数之后回滚还是立即回滚。NO_WAIT指定如果请求的数据库状态或选项更改只有等待事务提交或回滚才能完成,该请求将失败。即如果存在阻塞请求的事务,则放弃该请求并返回失败 阅读全文

posted @ 2014-01-14 11:55 笑东风 阅读(351) 评论(0) 推荐(0) 编辑

DAC--解决windows验证无法登陆的问题
摘要:使用单用户管理员模式启动SQL Server,再使用SQLCMD连接上数据库,此时有sysadmin权限,添加用户并赋予相应权限 阅读全文

posted @ 2014-01-14 00:18 笑东风 阅读(891) 评论(0) 推荐(2) 编辑

DAC--使用DAC来导出数据库脚本
摘要:使用DAC来导出数据库脚本(C#) 阅读全文

posted @ 2014-01-14 00:10 笑东风 阅读(759) 评论(0) 推荐(0) 编辑

Checkpoint--与lazy writer区别
摘要:checkpoint目的是减少数据库的恢复时间(服务奔溃或重启服务后的恢复),而lazy writer的目的是保证SQL OS 有空闲缓存块和系统有一定可用内存。 Checkpoint和lazyWriter都会将缓冲区内脏页写入到磁盘; lazywriter会更新缓存区空闲可用列表,而checkpoint不会; 阅读全文

posted @ 2014-01-14 00:07 笑东风 阅读(1171) 评论(0) 推荐(0) 编辑

Checkpoint--相关问题
摘要:Checkpoint是实例级别还是数据库级别? 答:数据库级别,在SQL Server关闭时,会对所有数据库逐一提交checkpoint 阅读全文

posted @ 2014-01-14 00:04 笑东风 阅读(241) 评论(0) 推荐(0) 编辑

Checkpoint--在Tempdb上的特殊性
摘要:由于Checkpoint的目的是为减少数据库恢复时间,而每次实例重启都会创建新的tempdb,而不需要恢复,因此checkpoint在Tempdb上行为与其他用户数据库上略微不同。 阅读全文

posted @ 2014-01-14 00:01 笑东风 阅读(350) 评论(0) 推荐(0) 编辑

Checkpoint--查看各DB上的脏页
摘要:可以使用sys.dm_os_buffer_descriptors来看数据页在buffer pool中的状态,其中is_modified来标示数据页是否为脏页 阅读全文

posted @ 2014-01-13 23:53 笑东风 阅读(348) 评论(0) 推荐(0) 编辑

Checkpoint--实现步骤
摘要:Checkpoint 实现步骤: 1.将CheckPoint标记写入日志(标记中包含当前数据库中活动的事务信息),并将Log Block写入持久化存储 2.将Buffer Pool中所有的脏页写入磁盘,所有的脏页包含了未提交事务所修改的数据 阅读全文

posted @ 2014-01-13 23:52 笑东风 阅读(1002) 评论(0) 推荐(0) 编辑

BCP 基本语法
摘要:摘抄自MSDN上的BCP用法 阅读全文

posted @ 2014-01-13 23:47 笑东风 阅读(2613) 评论(0) 推荐(0) 编辑

BCP IN示例
摘要:如何使用BCP来将数据导入到SQL SERVER 中 阅读全文

posted @ 2014-01-13 23:45 笑东风 阅读(3155) 评论(0) 推荐(0) 编辑

Alwayson--与复制的影响
摘要:在主副本上建立复制后,复制的事务日志读取代理(log reader)不会读取尚未同步到辅助副本的日志,因为辅助副本可能在下一时刻转化成为主副本,变为新的复制发布服务器,为此需要保证复制处理的日志总慢于辅助副本同步的日志。 阅读全文

posted @ 2014-01-13 23:42 笑东风 阅读(715) 评论(2) 推荐(0) 编辑

Alwayson--问题总结二
摘要:1. 备份首选项作用答:备份首选项并不影响实际的备份操作,只是在备份前提供标示当前副本是否是推荐的备份副本。管理员可以忽略备份首选项在任意副本上执行完整备份和日志备份。2. 在辅助副本和主副本备份的区别答:在辅助副本上执行完整备份时,必须使用COPY_ONLY选项,但在主副本上备份时可以不使用COPY_ONLY选项;无论在辅助副本还是主副本上进行日志备份(不带COPY_ONLY选项)都会截断日志。3. 当备份优先级相同时,如何决定备份首选副本?答:当备份首选项为“主副本”时,主副本为首选副本,当备份选项为其他时,在所有可用副本中选取位置最上的副本为首选副本。4. 如何判断当前副本是否是首选副本 阅读全文

posted @ 2014-01-13 23:39 笑东风 阅读(1719) 评论(0) 推荐(0) 编辑

Alwayson--问题总结一
摘要:1. Alwayson 是否依赖于域环境?答: 是, alwayson依赖于故障转移群集(只有在故障转移群集中的SQL Server 才能启动高可行性组功能),而故障转移群集愈依赖于域环境.2. 为了启用高可用性组功能,SQL Server服务是否必须使用域账户运行?答: 否,在使用非域账户运行的SQL Server服务上仍然可构建高可用性组,服务运行账户决定SQL Server中管理员的操作权限, 如果运行的域账户有访问网络资源的权限,那么SA账户也拥有访问该资源的权限.3. 当域控服务器失效时, 高可用性组是否继续可用?答:当域控服务器失效时,无法进行自动故障转移, 无法使用机器名直接访问 阅读全文

posted @ 2014-01-13 23:38 笑东风 阅读(1612) 评论(0) 推荐(0) 编辑

Alwayson--辅助副本状态
摘要:1. 同步中(SYNCHRONIZING),主副本和辅助副本之间存在数据差异,并正在进行同步;2. 已同步(SYNCHRONIZED),主副本和辅助副本之间不存在数据差异,无需要同步的日志;3. 已断开(DISCONNECTED),主副本和辅助副本间会定期相互ping,在指定超时时间内(默认10秒)无响应,则将辅助副本标识为DISCONNECTED状态;4. 不同步(NOT SYNCHRONIZING),当辅助辅助在重做日志出错时(如无法在辅助副本上添加文件组,或辅助副本空间不足),将辅助副本设置为NOT SYNCHRONIZING状态。当辅助副本被设置为NOT SYNCHRONIZING或D 阅读全文

posted @ 2014-01-13 23:37 笑东风 阅读(734) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示