我有一个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