3

我已经将一百万行插入到一个表中(在 sql 2000 上),其中已经有几百万行。目标表上有索引。在新插入之前它没有被删除。那么,每次新插入后,我是否必须重建或重组目标表的索引?或者 SQL Server 2000 是否已经在加载后执行了索引的自动排列?

Dbas / Sql 专家请回复..这些索引让我很困惑

4

1 回答 1

4

是的,您应该重新组织它,因为在如此巨大的插入之后,您的索引将被分散。

要检查碎片百分比,您可以这样做:-

 DBCC SHOWCONTIG

或者

 select i.name,avg_fragmentation_in_percent 
 from sys.dm_db_index_physical_stats(db_id(),null,null,null,null) 
 S inner join sys.indexes I on s.object_id=I.object_id and s.index_id=i.index_id

检查这个网站

当索引碎片大于 40% 时,应该重建索引。当索引碎片在 10% 到 40% 之间时,应该重新组织索引。索引重建过程使用更多 CPU 并锁定数据库资源。SQL Server开发版和企业版都有ONLINE选项,可以在重建Index时开启。ONLINE 选项将在重建期间保持索引可用。

于 2013-08-19T10:58:55.213 回答