none
インデックスデフラグによる unused space の開放について RRS feed

  • 質問

  • SAP R/3をMSSQL 2000で使用しております。

    sp_spaceused の unused 列の値の大きさが data size,index size の合計サイズよりも大きくなっており
    ディスクを圧迫しています。

    以前、R/3のパフォーマンス向上を目的にMSSQLでインデックスデフラグを行いました。
    そこで予期せず unused の値が大幅に減った(約20GB減)のですが、
    (data size:2GB減 index size :変わらず)

    インデックスの再編成(DBCC INDEXDEFRAG)を行うことでなぜ
    unused の値が減少するのでしょうか?

    よろしくお願いします。

    spa tree

    2009年8月27日 2:54

回答

  • まず参考として、、、
    http://technet.microsoft.com/ja-jp/library/cc966523.aspx から抜粋↓
    ページを圧縮し、インデックス作成時に指定された fillfactor にページ密度を調整しようとします。DBCC INDEXDEFRAG は、ページのページ密度レベルを元の fillfactor まで上げようとしますが、現在のページ密度が元の fillfactor より高いページについて、ページ密度を下げることはしません。

    もうひとつ参考として、、、
    http://www.atmarkit.co.jp/fdb/rensai/drk05/drk05_1.html の中の
    「図2 クラスタ化インデックスを用いたテーブルのインデックスとデータページ構造」に注目すると…

    つまりクラスタ化インデックスに INDEXDEFRAG をおこなうと
    上記の図に書いてある「データページ」のページ密度の調整がおこなわれるのではないでしょうか。

    なぜ“大量に減った”(=無駄な領域が多かった)かというと
    クラスタ化インデックスの FILL FACTOR を充分取っていなかったのかもしれません。
    INSERT が頻繁におこなわれるのに FILL FACTOR 0% にしているとか。。

    ↑http://www.atmarkit.co.jp/fdb/rensai/drk05/drk05_2.html に説明があります。
    他の原因にも触れられています。(可変長列など)

    以上、実のところ確信は持てていないのですが、一部でも参考になれば幸いです。
    2009年9月2日 13:02

すべての返信

  • まず参考として、、、
    http://technet.microsoft.com/ja-jp/library/cc966523.aspx から抜粋↓
    ページを圧縮し、インデックス作成時に指定された fillfactor にページ密度を調整しようとします。DBCC INDEXDEFRAG は、ページのページ密度レベルを元の fillfactor まで上げようとしますが、現在のページ密度が元の fillfactor より高いページについて、ページ密度を下げることはしません。

    もうひとつ参考として、、、
    http://www.atmarkit.co.jp/fdb/rensai/drk05/drk05_1.html の中の
    「図2 クラスタ化インデックスを用いたテーブルのインデックスとデータページ構造」に注目すると…

    つまりクラスタ化インデックスに INDEXDEFRAG をおこなうと
    上記の図に書いてある「データページ」のページ密度の調整がおこなわれるのではないでしょうか。

    なぜ“大量に減った”(=無駄な領域が多かった)かというと
    クラスタ化インデックスの FILL FACTOR を充分取っていなかったのかもしれません。
    INSERT が頻繁におこなわれるのに FILL FACTOR 0% にしているとか。。

    ↑http://www.atmarkit.co.jp/fdb/rensai/drk05/drk05_2.html に説明があります。
    他の原因にも触れられています。(可変長列など)

    以上、実のところ確信は持てていないのですが、一部でも参考になれば幸いです。
    2009年9月2日 13:02
  • こんにちは、フォーラムオペレーターの高橋春樹です。

    あんにんごさん、いつもお世話になっております。

    spa treeさん、初めまして。
    MSDNフォーラムのご利用有難うございます。

    あんにんごさんからアドバイスを頂いたと思うのですが、問題解決に繋がりましたでしょうか?
    今回、あんにんごさんからのアドバイスが、有用な情報だと思いましたので、勝手ながら、
    回答マークを付けさせてもらいました。
    もし、問題が解決していないようでしたら、詳しい状況をお伝えして頂ければと思います。

    今後ともMSDNフォーラムをよろしくお願いします。


    マイクロソフト株式会社 フォーラム オペレーター 高橋春樹
    2009年9月15日 10:10