我在 Windows NT 6.3 (Build 9600:) 上使用 Microsoft SQL Server 2014 - 12.0.4100.1 企业版(64 位)
我有一个 491 GB 的表,其中有 36 亿行没有主键。我希望添加的主键仅涵盖bigint
包含唯一值的单个列。数据库有 477 GB 的可用空间,但这似乎还不够。
尝试添加它失败并出现以下错误:
无法为数据库 '[Redacted]' 中的对象 'dbo.SORT 临时运行存储:424251614560256' 分配空间,因为 'PRIMARY' 文件组已满。通过删除不需要的文件、删除文件组中的对象、向文件组添加其他文件或为文件组中的现有文件设置自动增长来创建磁盘空间。
错误中的数据库名称是我尝试添加 PK 的数据库,而不是“tempdb”,这是我在此类错误中经常看到的。
我正在使用的命令:
ALTER TABLE REDACTED ADD CONSTRAINT [PK_REDACTED] PRIMARY KEY CLUSTERED
(
[RedactedId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
Run Code Online (Sandbox Code Playgroud)
起初,该命令在 8-9 分钟后失败,然后我的 DBA 将另一个数据文件添加到具有大约 150 GB 可用空间的驱动器上的数据库中。24 分钟后再次运行它失败。这是进步,但我不知道需要多少可用空间,或者添加此索引实际需要多长时间。此数据库中目前有 477 …