2011-07-12 112 views
0

我从SQL Server 2005数据库中的表中删除聚簇索引,并且运行需要很长时间。SQL Server 2005聚簇索引删除运行时间很长,没有非聚簇索引存在

我做了一些研究,并确定删除聚集索引可能需要很长时间,因为它正在更新非聚集索引中的指针,而是引用表本身的RowID,但在此特定情况下,不存在非聚集索引索引出现在桌面上。

数据库中有很多外键,所以有可能它们中的一个可能引用了聚集索引ID。

有什么办法可以确定什么对象使用聚集索引引用而不是RowID?

回答

1

如果有一个聚集索引,一切都使用的是不是一个RowID - 聚簇索引键IS行标识符。

所以答案是,任何引用该表的东西。

+0

有什么办法可以获得这些对象的列表吗? – David

+0

@David - 你可以看看'sys.sysdepends'来检查依赖关系。 – JNK

+0

我查看了sysdepends,并且存在一个存储过程引用表中的聚集索引的表。 – David

0

查看外键约束的一种简单直观的方法是将表添加到图中。然后你可以看到关系,并检查是否有指向聚集索引。

但是,您丢弃最有可能是主键的聚集索引的原因是什么?

+0

该表已分区,聚簇索引未在分区上创建,因此需要重新设计索引。由于所涉及的表格非常大,我正试图确定是否有任何简单的方法来加速操作。 – David

相关问题