麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > SQL Server > 正文

SqlServer 復制中將大事務分成小事務分發的方法

2024-08-31 01:04:22
字體:
來源:轉載
供稿:網友

在sql server 復制中,當在發布數據庫執行1個大事務時,如一次性操作 十萬或百萬以上的數據。當操作數據在發布數據庫執行完成后 ,日志讀取器代理將掃描事務日志,一次性傳遞到分發數據庫中。若上個事務未傳遞完成,連續執行多個事務,日志讀取器代理將掃描日志中多個事務同時傳遞到分發數據庫中,默認最大掃描500個事務。如果執行多次上百萬或千萬的數據將堵塞很久。

日志讀取器代理可配置將大事務劃分為多個小事務進行傳遞到分發數據庫中,分發隊列則按照小事務分發到訂閱數據庫中,這樣數據就很快同步!

在沒改代理參數之前,本人執行1次插入30萬的數據到發布表中。插入完成后,監控發布到分發的記錄如下:

大事務,小事務,分發,SqlServer

可以看到,這1個事務的命令都得一次傳遞完才能分發,而分發又消耗時間,這里等待太久影響事務的實時性。
如果還有其他事務,默認500(參考參數:-ReadBatchSize),也將一起傳遞,耗時較長。

現在更改參數,掃描到 1000 左右的命令就即時分發,需要設置如下參數:
-MaxCmdsInTran number_of_commands

大事務,小事務,分發,SqlServer

注:該參數只能添加到日志讀取器代理中,在代理配置文件沒有此參數的設置。

添加后重啟 日志讀取器代理。

再次插入 30 萬的數據!~到監視器查看

大事務,小事務,分發,SqlServer

可以看到,命令達到 1000 左右就進行分發了,此時查看訂閱數據庫,數據也同步過來了,這樣就省去了較多掃描命令的時間。
更詳細查看每個事務的命令數,如下:

SELECT top 10 A.xact_seqno,A.entry_time,COUNT(*) AS cmdsFROM distribution.dbo.MSrepl_transactions A(NOLOCK) INNER JOIN distribution.dbo.MSrepl_commands B(NOLOCK) ON A.xact_seqno=B.xact_seqnoGROUP BY A.xact_seqno,A.entry_timeORDER BY cmds DESC

大事務,小事務,分發,SqlServer

這個參數雖好,但是也可能引起數據的一致性。

如:

在發布更新了一批數據,但是訂閱查詢時卻有不同。

分發事務遇到沖突或者死鎖,也導致這部分的數據不一致。


注:相關教程知識閱讀請移步到MSSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品久久久久久久久久iiiii | 大学生一级毛片在线视频 | 国产精品久久久久久久午夜片 | 日本免费不卡一区二区 | 国产精品久久久久久久久岛 | 国产va在线观看免费 | 最新一级毛片 | h色视频网站| 国产精品久久久久久久不卡 | 在线观看免费av网 | 欧美顶级毛片在线播放小说 | 日韩字幕 | 永久在线观看电影 | 91 视频网站 | 免费毛片观看 | 黑人日比 | 久久国产精品久久精品国产演员表 | 成人福利在线视频 | 最新黄色电影网站 | 97中文 | 精品国产一区二区三区久久久蜜 | 免费观看视频在线 | 欧产日产国产精品v | 精品一区二区三区在线视频 | 国产成人在线观看免费 | 黄色网址免费进入 | 久久里面有精品 | 激情综合网俺也去 | 欧美三级短视频 | 中国美女一级黄色大片 | 成人在线观看一区 | aa国产视频一区二区 | 欧美视频国产 | www.guochanav.com| 黄网站免费在线看 | 色人阁导航| 久久久经典视频 | 亚洲欧美日韩精品久久 | 欧美日韩免费看 | h视频免费在线观看 | 依依成人精品视频 |