我已经在一个表中插入了一百万行(在sql 2000上),其中已有几百万行。 目标表上有索引。它在新插入之前没有丢弃。 那么,每次新插入后,我是否必须重建或重新组织目标表的索引? 或者SQL Server 2000在加载后是否已经执行了索引的自动排列
Dbas / Sql专家请回复..这些索引让我很困惑
答案 0 :(得分:3)
是的,您应该重新组织它,因为在这么大的插入之后,您的索引将被分割。
要检查碎片百分比,您可以执行以下操作: -
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
选中此site
当索引碎片大于40%时,应重建索引。 当索引碎片在10%到10%之间时,应重新组织索引 40%。索引重建过程使用更多的CPU并锁定数据库 资源。 SQL Server开发版和企业版有 选项ONLINE,可在重建索引时打开。线上 选项将在重建期间保持索引可用。