您的位置:首页 > 家居用品 > 箱包 > insert rows into heap/clustered table(2)

insert rows into heap/clustered table(2)

luyued 发布于 2010-12-26 21:59   浏览 N 次  
在定位的阶段中,会对root pageintermate leve pages进行锁定(S LATCH), 如果插入的数据量非常大,导致了root pageintermate level pages中的某个页发生了变化,也会对root page和相应的intermate level page进行锁定(U LATCH),对于小数据量的表来说,可能插入了若干行数据后,intermate level pages就需要更新了,再插入更多的数据后,root page也要进行更新。但对于一个大数据量的表来说,这种情况发生的频率会更低。

在实际插入的时候,会对影响的data page进行锁定(U LATCH),完成后更新相应的IAM,GAM页(如果发生了EXTENT的变化)。假设I/O,CPU都不是问题的情况下,这些页就可能成为频繁插入的瓶颈了。目前SQL SERVER并没有内置的解决方案,不过可以考虑使用PARTITION来解决。

参考

http://blogs.msdn.com/b/sqlserverstorageengine/archive/2006/07/08/under-the-covers-gam-sgam-and-pfs-pages.aspx

http://msdn.microsoft.com/en-us/library/ms187501.aspx

http://social.msdn.microsoft.com/Forums/zh-CN/sqlserverzhchs/thread/2a284381-c5d2-4e52-aac6-da616b042fb5/#52e00c9e-50b3-476c-9f15-64e6c8e5b722

http://sqlblog.com/blogs/linchi_shea/archive/2007/01/22/hash-partition-as-a-design-method.aspx

http://sqlcat.com/technicalnotes/archive/2009/09/22/resolving-pagelatch-contention-on-highly-concurrent-insert-workloads-part-1.aspx


作者: stswordman 发表于 2010-12-26 00:05 原文链接

评论: 0 查看评论发表评论


最新新闻:
· 10大最适合编程的字体推荐下载,让代码看起来更美更舒服!(2010-12-25 23:12)
· Erbix:适合CommonJS的服务端JavaScript托管平台(2010-12-25 23:09)
· 外媒评Google 2010年十大是非:Android大获全胜(2010-12-25 22:15)

广告赞助商