我今天已经多次遇到过这个问题,到处查看博客文章,但没有什么能帮助我解决这个问题。
我正在尝试向大约有 700 万行的表添加非聚集索引。数据库在 1TB 硬盘上大约有 4GB。我在同一驱动器上安装了 TempDB,设置为无限制自动增长 10%。驱动器上大约还剩下 950GB。我一直收到此错误。
这是 SQL Server 2008 标准版。
当我尝试“重建索引”时出现同样的错误。
答案1
确保您正在使用该SORT_IN_TEMPDB
选项;根据您对 tempdb 配置的描述,这听起来不像是这样做的。听起来它正在数据库内进行排序,并且目标文件组正在被填满。
SORT_IN_TEMPDB
通过 SQL Server Management Studio 的新索引 UI 创建索引时,默认情况下不使用该选项。您可以在新索引屏幕的选项窗格中启用它。
在 T-SQL 中它是这样的(对于非聚集索引):
CREATE NONCLUSTERED INDEX [IX_MyNewIndex] ON [MyTable]
(
COL1 ASC,
COL2 ASC,
...
)
WITH (
....,
SORT_IN_TEMPDB = ON,
....
)