トップ回答者
インデックスデフラグによる unused space の開放について

質問
-
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
回答
-
まず参考として、、、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月15日 10:10
すべての返信
-
まず参考として、、、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月15日 10:10
-
こんにちは、フォーラムオペレーターの高橋春樹です。
あんにんごさん、いつもお世話になっております。
spa treeさん、初めまして。
MSDNフォーラムのご利用有難うございます。
あんにんごさんからアドバイスを頂いたと思うのですが、問題解決に繋がりましたでしょうか?
今回、あんにんごさんからのアドバイスが、有用な情報だと思いましたので、勝手ながら、
回答マークを付けさせてもらいました。
もし、問題が解決していないようでしたら、詳しい状況をお伝えして頂ければと思います。今後ともMSDNフォーラムをよろしくお願いします。
マイクロソフト株式会社 フォーラム オペレーター 高橋春樹