Sql server 2012 为什么删除约束需要这么长时间?

Sql server 2012 为什么删除约束需要这么长时间?,sql-server-2012,primary-key,database-performance,Sql Server 2012,Primary Key,Database Performance,SQL Server 2012 SP3 它是由聚集索引支持的主键。如果重要的话,表中有6200万行,24GB的数据,6.5GB的索引(总共有3个) (编辑:该语句最终失败,表示dbo.SORT临时运行存储区已填充主存储区(从而填充磁盘)。这种大小的表很难对其进行约束。有多种解决方法,例如 如果删除主约束,系统将重新组织磁盘上的数据。从资源配置的角度来看,这是非常昂贵的。这样大小的表很难删除约束。有多种解决方法,例如 如果删除主约束,系统将重新组织磁盘上的数据。从资源配置的角度来看,这是非常昂

SQL Server 2012 SP3

它是由聚集索引支持的主键。如果重要的话,表中有6200万行,24GB的数据,6.5GB的索引(总共有3个)


(编辑:该语句最终失败,表示
dbo.SORT临时运行存储区
已填充主存储区(从而填充磁盘)。

这种大小的表很难对其进行约束。有多种解决方法,例如


如果删除主约束,系统将重新组织磁盘上的数据。从资源配置的角度来看,这是非常昂贵的。

这样大小的表很难删除约束。有多种解决方法,例如


如果删除主约束,系统将重新组织磁盘上的数据。从资源配置的角度来看,这是非常昂贵的。

删除聚集索引(不必是PK)会将表变成堆并重建所有非聚集索引,因为行定位器已从聚集键更改为RID

通过删除或禁用非聚集索引,然后重新创建或重建,可以避免一些开销


通常,SQL Server表应该具有聚集索引。

删除聚集索引(不必是PK)会将表变成堆并重建所有非聚集索引,因为行定位器已从聚集键更改为RID

通过删除或禁用非聚集索引,然后重新创建或重建,可以避免一些开销


通常,SQL Server表应该有一个聚集索引。

该链接是关于填充tempdb的。我的问题是关于填充PRIMARY。嗨,Ron,您对tempdb的引用是正确的。在这种情况下,无论tempdb引用如何,解决方案对您来说都是一样的。通常会使用某种导出、删除和重新创建过程您的解决方法。该链接是关于填充tempdb的。我的问题是关于填充PRIMARY。嗨,Ron,您对tempdb的引用是正确的。在这种情况下,无论tempdb引用如何,解决方案对您都是一样的。通常,某种导出、删除和重新创建过程将是您的解决方法。“重建所有非聚集索引,因为行定位器已从聚集键更改为RID”,这是我担心的问题。“重建所有非聚集索引,因为行定位器已从聚集键更改为RID”,这是我担心的问题。