在非常繁忙的表上创建索引


11

我们有一个insert\select每次都有很多表的表(例如每秒有100台计算机插入\更新)。

在即使一秒钟都无法锁定的表上创建索引的最佳方法是什么?

如果创建索引,我确定它会锁定请求,而我做不到。

这是一张有100万行以上的大表。

Answers:


12

没有这样的选项CREATE INDEX WITH (NOLOCK)(甚至NOLOCK在查询中需要锁,也比没有提示时要少)。

您要做的最好的事情是WITH (ONLINE = ON),它仍然在操作的开始和结束时都处于锁定状态(两者都与与表相关的重新编译计划有关- 有关更多详细信息,请参阅Paul Randal的这篇博客文章)。

这将大大减少建立索引对您的应用程序的影响,但是没有实际的方法可以完全消除这种影响。另外,此功能不是免费的:它需要企业版。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.