06 2011 档案
事物复制的troubleshooting 1
摘要:本文大量照抄了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 阅读(855) 评论(0) 推荐(1) 编辑
distribution cleanup job2
摘要:第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 阅读(422) 评论(1) 推荐(1) 编辑
在分发服务器上查看信息
摘要: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 阅读(767) 评论(0) 推荐(0) 编辑
Top子句对查询计划的影响
摘要: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) 编辑
tracer token 追踪标记
摘要: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 阅读(1691) 评论(0) 推荐(1) 编辑