上一页 1 2 3 4 5 6 7 8 9 10 ··· 20 下一页
  2011年7月27日
摘要: 1 找出效率低的语句 SELECTTOP10qs.total_worker_time,qs.total_logical_reads,qs.last_logical_writes,qs.plan_handle,qs.execution_count,(SELECTSUBSTRING(text,qs.statement_start_offset/2+1,(CASEWHENqs.statement_end_offset=-1THENLEN(CONVERT(nvarchar(max),text))*2ELSEqs.statement_end_offsetEND-qs.statement_start_o. 阅读全文
posted @ 2011-07-27 15:15 stswordman 阅读(676) 评论(1) 推荐(0) 编辑
  2011年7月19日
摘要: 准备数据,插入1w条数据 create table locktest(id int primary key identity(1,1))gobegin traninsert locktest default valuesgo 10000commit 执行顺序如下,在第三部的时候会出现死锁 执行顺序 session1 session2 1 begin trandelete from locktest where id=2 2 set transaction isolation level repeatable readbegin transelect * from locktest where 阅读全文
posted @ 2011-07-19 12:48 stswordman 阅读(751) 评论(1) 推荐(1) 编辑
  2011年7月14日
摘要: create TRIGGER indexTrigger ON ALL SERVER --FOR DROP_INDEX ,ALTER_INDEX,create_indexFOR DROP_INDEXAS declare @original_login sysname ,@login_name sysname,@user_name sysname,@eventtype nvarchar(100),@commandText nvarchar(max),@dbname sysnameselect @original_login=ORIGINAL_LOGIN(),@login_name=SUSER_NA 阅读全文
posted @ 2011-07-14 16:20 stswordman 阅读(311) 评论(0) 推荐(0) 编辑
  2011年7月7日
摘要: 1 同一个发布库的对象被多个发布包(n)所包含,导致产生了n倍的数据 在发布库执行下面的语句,会返回被多次发布的对象 select objid,count(*) from sysarticles group by objid having(count(*)>1) order by COUNT(*) desc 2 distribution cleanup job停止工作,导致MSrepl_commands和MSrepl_transactions数据无法被清除 3 发布库中的任意一个发布的匿名订阅属性/立即初始化属性为true,这会导致全部的数据在max retention到达之前无法被删除 阅读全文
posted @ 2011-07-07 17:05 stswordman 阅读(729) 评论(0) 推荐(1) 编辑
  2011年6月21日
摘要: 本文大量照抄了Transactional Replication Conversations 上图是一个事物复制的拓扑. 大致可以把这个流程分为3步 logReader Agent从publicationDB的日志文件中读取需要复制的日志信息 logReader Agent将读取的信息写入到distributor的distribution库中 distribution Agent将distribution库中的数据写入到subscriber 三个阶段都可能出现性能问题. 先使用tracertoken进行定位,找到是哪一部出现问题 如果是发布到分发的问题 在logreader agent的作业里 阅读全文
posted @ 2011-06-21 16:06 stswordman 阅读(836) 评论(0) 推荐(1) 编辑
  2011年6月16日
摘要: 第25行开始清除事务和命令 sp_MSdistribution_delete以发布库(@publisher_database_id)为单位清除: 第15行,得到改发布库的需要清除的最大序列号(@max_cleanup_xact_seqno) 地20行,调用sp_MSdelete_publisherdb_trans来删除这些数据,所以早于@max_cleanup_xact_seqno的数据都会被删除 sp_MSdelete_publisherdb_trans是真正执行删除操作的存储过程。该存储过程删除msrepl_commands,并通过调用sp_MSdelete_dodelete来删除msre 阅读全文
posted @ 2011-06-16 14:56 stswordman 阅读(420) 评论(1) 推荐(1) 编辑
  2011年6月15日
摘要: 1 发布信息 use [distribution] select publication,publication_id,publisher_db, case publication_type when 0 then 'transactional' when 1 then 'snapshot' when 2 then 'merge' end as publication_type , allow_anonymous, case sync_method when 0 then 'native' when 1 then 'cha 阅读全文
posted @ 2011-06-15 10:46 stswordman 阅读(763) 评论(0) 推荐(0) 编辑
  2011年6月14日
摘要: 1子查询的影响 Nest loop适用于被连接的数据 如果两个表做join操作,会有三种join方式: Nested join, Merge Join, Hash Join Nested Join适用于结果集较小表 Hash Join适用于结果集很大的表 示例如下 createtablemoderatetable1(idintidentity(1,1)primarykey,c1int,c2int,c3int,c4int)createtablemoderatetable2(idintidentity(1,1)primarykey,c1int,c2int,c3int,c4int)declare@n 阅读全文
posted @ 2011-06-14 11:02 stswordman 阅读(2092) 评论(10) 推荐(2) 编辑
  2011年6月1日
摘要: tracer token是SQL SERVER 2005引入的一个追踪机制, 应用在replication的场景中.用于查看replication的延迟情况. tracer token的原理如下: 在publication database的日志里生成一条记录,该记录被标记成需要被复制. LogReader agent读取这条记录,插入到distribution database Distribution agent将distribution database该条记录插入到订阅服务器. SQLSERVER会去追踪整个过程,统计三个时间段所花费的时间,这样就可以推断出哪个步骤出现了问题:到底是发 阅读全文
posted @ 2011-06-01 14:09 stswordman 阅读(1689) 评论(0) 推荐(1) 编辑
  2011年5月26日
摘要: 近期进行了一次分发服务器的升级,将服务以前到硬件配置更好的服务器上,并用windows 2008 r2替换原有的windows 2003 sp2. SQLSERVER版本不变,都是SQL SERVER 2008 R2. 由于windows 2003的集群并不支持直接升级到windows 2008 r2.所以采用了一下方式: http://technet.microsoft.com/en-us/li... 阅读全文
posted @ 2011-05-26 11:06 stswordman 阅读(797) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 20 下一页