none
インデックス(断片化)再構成について RRS feed

  • 質問

  • 現在、インデックスの再構成を実施しておりますが、断片化されたインデックスが解放されない状況です。
    実施内容は下記URLの内容のスクリプトを実施してます。
    https://gallery.technet.microsoft.com/scriptcenter/6f8cde49-5c52-4abd-9820-f1d270ddea61

    ================================================
    xxxx-xx-xx xx:xx:xx.xxx Done.
    Estimated number of pages in fragmented indexes: 1844224
    Estimated number of pages freed: 0
    Updating all statistics.xx:xx:xx.xxx

    xxxx-xx-xx xx:xx:xx.xxx Done.
    Estimated number of pages in fragmented indexes: 1844225
    Estimated number of pages freed: 0
    Updating all statistics.xx:xx:xx.xxx

    xxxx-xx-xx xx:xx:xx.xxx Done.
    Estimated number of pages in fragmented indexes: 1844225
    Estimated number of pages freed: 2
    Updating all statistics.xx:xx:xx.xxx
    ================================================

    何か断片化されたインデックスを解放する手段があればご教示いただけますと幸いです。
    2020年8月14日 11:16

回答

  • 実行されているスクリプトの場合、以下の条件に当てはまらないインデックスの場合は、インデックスの再構成/再構築は実施されないもようです。

        (f.avg_page_space_used_in_percent < 85.0 and f.avg_page_space_used_in_percent/100.0 * page_count < page_count - 1) 
        or (f.page_count > 50 and f.avg_fragmentation_in_percent > 15.0) 
        or (f.page_count > 10 and f.avg_fragmentation_in_percent > 80.0) 
    以下の URL を参考に、インデックスの再構成/再構築を実行することで、インデックスの断片化を解消することができると思います。

    https://docs.microsoft.com/ja-jp/sql/relational-databases/indexes/reorganize-and-rebuild-indexes?view=sql-server-ver15#remove-fragmentation-using-tsql

    + テーブルのすべてのインデックスを再構成するには
    + テーブルのすべてのインデックスを再構築するには

    • 回答としてマーク ikeda-19 2020年8月15日 15:11
    2020年8月14日 11:34

すべての返信