&引用;等待缓冲区闩锁类型2时发生超时”;SQL Server中出现错误
等待时发生超时 页的缓冲闩锁类型2 (1:1535865),数据库ID 6 这是我在尝试创建索引时收到的五次错误消息&引用;等待缓冲区闩锁类型2时发生超时”;SQL Server中出现错误,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,等待时发生超时 页的缓冲闩锁类型2 (1:1535865),数据库ID 6 这是我在尝试创建索引时收到的五次错误消息 CREATE NONCLUSTERED INDEX YearIndx ON dbo.Papers ( PublicationYear ) papers表大约有2000万条记录和175 GB的存储空间,我从来没有遇到过这种情况,在伟大的Google上搜索并没有立即击中我,所以我会尝试以下方法: 请确认您正在从SSMS查询窗口运行此查询。如果是,则转到查询、查询选项
CREATE NONCLUSTERED INDEX YearIndx ON dbo.Papers
(
PublicationYear
)
papers表大约有2000万条记录和175 GB的存储空间,我从来没有遇到过这种情况,在伟大的Google上搜索并没有立即击中我,所以我会尝试以下方法: 请确认您正在从SSMS查询窗口运行此查询。如果是,则转到查询、查询选项、执行。执行超时值是多少
CREATE NONCLUSTERED INDEX YearIndx ON dbo.Papers
(
PublicationYear
)
WITH
(
SORT_IN_TEMPDB = ON
--, ONLINE=ON --Enterprise only
, ALLOW_ROW_LOCKS = OFF --default is on
, ALLOW_PAGE_LOCKS = OFF --default is on
, MAXDOP = 1 --all that you can allow
)
- 哦,请确保您阅读了CREATEINDEX语句,以确保我选择的选项适用于您的情况。例如,如果tempdb与db_name(6)位于同一组磁盘上,那么情况可能只会变得更糟
- 另一个选项是创建一个相同的空表,其中包含您想要的所有索引。然后,您可以通过从dbo.Papers中选择,轻轻地填充该表。完成后,使用一批事务包装,将dbo.Papers重命名为dbo.Papers\u old,将dbo.Papers\u new重命名为dbo.Papers
- 最后,我想到了你的索引。您是否绝对确定,只要发布一年的索引就可以解决出现的任何问题?让我吃惊的是,大多数人可能并不是在寻找一年内写的所有东西。更有可能的是,约翰今年写的所有论文,或者上个月写的所有论文
听起来像是IO或内存问题。您是否在服务器上启用了AWE?非常感谢您的努力。我还试图通过搜索谷歌找到一些答案,但没有人能找到答案。此外,昨天我尝试了DBCC CHECKDB;然后运行createindex脚本,效果很好。但我知道这并不总是有效的。再次谢谢你。谢谢你的例子@p.campbell