SQLServer2000(以下SQL2000)からSQLServer2008(以下SQL2008)への移行方法として、SQL2000のMDFファイルをデタッチして、SQL2008でアタッチする方法を採用しました。その際にSQL2000上で断片化率10%以上のテーブルが約30テーブルありましたが、SQL2008でアタッチ後に約90テーブルまで増加しました。この操作で断片化が増加する原因について、情報がありましたらご提供ください。
確認させて下さい。
行われた処理はアタッチだけですか? アタッチ後に圧縮したとかって事はないですか?
合わせて、データベースのオプション:自動圧縮がTrueになってて圧縮されたとかって事は無いかなぁ・・・
データベースオプションの自動圧縮はfalseとなっています。データベースを圧縮すると断片化が進む事例があるのでしょうか?
今回は単純にアタッチだけの処理をしています。他にチェックポイントはありますか?
作業の目的がハードウェアの移行であれば、という前提ですので的外れかもしれませんが、なんとなく気になったもので・・・
もしハードディスクを入れ替えているのであれば、新旧でハードディスクのセクタサイズが変わってないでしょうか? 一昔前のHDDだとセクタサイズが512Bですが、最近のHDDはビッグセクタ(4KB)ですので、 単純にMDFをコピーしても物理的なデータの配置が変わる事はあり得ますよ。
あります。
今回のケースとは関係無さそうですが。
回答ありがとうございました。
INDEXの再構築(DBCC DBREINDEX)を連続して行った場合に1回目よりも2回目の方が断片化率が進んでしまう事象も発生しております。
定期的に断片化の傾向を見ながら、再構築を実施します。
最適なインデックスの再構築の運用事例があれば、ご教示いただきたいです。