【问题标题】:Need to reorganize or recreate index after insert?插入后需要重新组织或重新创建索引?
【发布时间】:2013-08-21 03:32:55
【问题描述】:

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

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

【问题讨论】:

    标签: sql-server sql-server-2005 sql-server-2000 database-administration


    【解决方案1】:

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

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

     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% 到 40%。索引重建过程使用更多 CPU 并锁定数据库 资源。 SQL Server 开发版和企业版有 选项ONLINE,可以在重建Index时开启。在线的 选项将在重建期间保持索引可用。

    【讨论】:

    • 对 sql 2000 也是如此吗?
    • 是的,SQL 2000 也是如此!!
    • 可以运行 DBCC SHOWCONTIG 检查索引碎片
    • @user125457:- 你能再发一个问题吗???这将使您受益更多,因为在这种情况下,许多其他人可能会回答您。 P.S.:- 等待很快看到你的下一个问题!!!
    • 非常感谢,我在等待您的下一个问题。快乐编码!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    • 2016-01-09
    • 1970-01-01
    • 1970-01-01
    • 2017-01-14
    • 2020-04-29
    • 2016-02-04
    相关资源
    最近更新 更多