我有一個SQL服務器設置合併複製到800個移動客戶端運行SQL CE。插入合併複製數據庫是非常慢
服務器有足夠的資源和線進出公司都綽綽有餘,客戶端和服務器之間的複製總體上是好的,但我們得到了一個間歇性的錯誤,我只是無法追查。
昨天我們需要插入550個記錄到我們的主表中的一個,唯一存在的觸發器是標準的合併複製的。
該插入了由於它會不斷得到與嘗試同步移動設備僵持14小時。
有沒有人對我們如何才能避免在插入鎖和如何加快整個過程中的任何建議嗎?
------ -----更新
一些意見繼我在單個刀片上運行探查器,我看到了很多這樣的事情的
insert into dbo.MSmerge_current_partition_mappings with (rowlock) (publication_number, tablenick, rowguid, partition_id)
select distinct 1, mc.tablenick, mc.rowguid, v.partition_id
from dbo.MSmerge_contents mc with (rowlock)
JOIN dbo.[MSmerge_JEMProjectME_PromotionResource_PARTITION_VIEW] v with (rowlock)
ON mc.tablenick = 286358001
and mc.rowguid = v.[rowguid]
and mc.marker = @child_marker
and v.partition_id in (select partition_id from dbo.MSmerge_current_partition_mappings cpm with (rowlock) JOIN
dbo.MSmerge_contents mc2 with (rowlock)
ON cpm.rowguid = mc2.rowguid
and mc2.marker = @marker)
where not exists (select * from MSmerge_current_partition_mappings with (readcommitted, rowlock, readpast) where
publication_number = 1 and
tablenick = 286358001 and
rowguid = v.[rowguid] and
partition_id = v.partition_id)
對於很多我不打算插入的表格......這可能是一個線索嗎?
1.什麼是插入和同步使用的隔離級別?通常插入不應該是一個問題。 2.你有多少個索引? 3.你有沒有增量的索引,會導致記錄被插入到樹結構的中間而不是結尾? 4.你有聚集索引嗎? – Farfarak
1.不確定在隔離級別..它只是一個標準的插入語句 - 2.我們插入到表A有一個標準索引..但是合併複製觸發器將它粘貼到許多其他表 - 3.不在桌子上我們正在插入 - 4.否 –
1.您有複製過程中正在調用的查詢,它可能是複製過程阻止您的案例堆中的整個表(您沒有聚集索引)2.是否有唯一的密鑰表? – Farfarak