MSSQL:“无法为数据库中的对象‘dbo.SORT 临时运行存储分配空间,因为‘PRIMARY’文件组已满

MSSQL:“无法为数据库中的对象‘dbo.SORT 临时运行存储分配空间,因为‘PRIMARY’文件组已满

我今天已经多次遇到过这个问题,到处查看博客文章,但没有什么能帮助我解决这个问题。

我正在尝试向大约有 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,
    ....
)

相关内容