解决方案 »

  1.   

    这个很有可能是统计信息不准确导致的,而不一定是索引的问题。建议你更新统计信息:update statistics 表
      

  2.   

    看看你的库这里是不是为false
      

  3.   


    各位高手,我的sql 库 自动更新统计信息 这一项是 开着的!
      

  4.   

    看看你那个表上面的碎片情况SELECT  '[' + DB_NAME() + '].[' + OBJECT_SCHEMA_NAME(ddips.[object_id],
                                                         DB_ID()) + '].['
            + OBJECT_NAME(ddips.[object_id], DB_ID()) + ']' AS [statement] ,
            i.[name] AS [index_name] ,
            ddips.[index_type_desc] ,
            ddips.[partition_number] ,
            ddips.[alloc_unit_type_desc] ,
            ddips.[index_depth] ,
            ddips.[index_level] ,
            CAST(ddips.[avg_fragmentation_in_percent] AS SMALLINT) AS [avg_frag_%] ,
            CAST(ddips.[avg_fragment_size_in_pages] AS SMALLINT) AS [avg_frag_size_in_pages] ,
            ddips.[fragment_count] ,
            ddips.[page_count]
    FROM    sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'limited') ddips
            INNER JOIN sys.[indexes] i ON ddips.[object_id] = i.[object_id]
                                          AND ddips.[index_id] = i.[index_id]
    WHERE   ddips.[avg_fragmentation_in_percent] > 15
            AND ddips.[page_count] > 500
    ORDER BY ddips.[avg_fragmentation_in_percent] ,
            OBJECT_NAME(ddips.[object_id], DB_ID()) ,
            i.[name]
      

  5.   

    这个整理碎片我不会! 运行出来的结果是错的:“消息 195,级别 15,状态 10,第 1 行
    'OBJECT_SCHEMA_NAME' 不是可以识别的 内置函数名称。”
      

  6.   

    我这边没问题,你去掉第一列试试我这个:
    SELECT  
            i.[name] AS [index_name] ,
            ddips.[index_type_desc] ,
            ddips.[partition_number] ,
            ddips.[alloc_unit_type_desc] ,
            ddips.[index_depth] ,
            ddips.[index_level] ,
            CAST(ddips.[avg_fragmentation_in_percent] AS SMALLINT) AS [avg_frag_%] ,
            CAST(ddips.[avg_fragment_size_in_pages] AS SMALLINT) AS [avg_frag_size_in_pages] ,
            ddips.[fragment_count] ,
            ddips.[page_count]
    FROM    sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'limited') ddips
            INNER JOIN sys.[indexes] i ON ddips.[object_id] = i.[object_id]
                                          AND ddips.[index_id] = i.[index_id]
    WHERE   ddips.[avg_fragmentation_in_percent] > 15
            AND ddips.[page_count] > 500
    ORDER BY ddips.[avg_fragmentation_in_percent] ,
            OBJECT_NAME(ddips.[object_id], DB_ID()) ,
            i.[name]
      

  7.   

    这碎片有点夸张,找个空闲时间把整个库重建一下聚集索引吧。那些堆表(heap),看看能不能加个聚集索引,如果不能就算了。用维护计划就可以全部重建