none
SQLSERVERのデタッチ/アタッチにおける断片化について RRS feed

  • 質問

  • SQLServer2000(以下SQL2000)からSQLServer2008(以下SQL2008)への移行方法として、SQL2000のMDFファイルをデタッチして、SQL2008でアタッチする方法を採用しました。その際にSQL2000上で断片化率10%以上のテーブルが約30テーブルありましたが、SQL2008でアタッチ後に約90テーブルまで増加しました。この操作で断片化が増加する原因について、情報がありましたらご提供ください。

    2012年8月14日 13:13

すべての返信

  • 確認させて下さい。

    行われた処理はアタッチだけですか?
    アタッチ後に圧縮したとかって事はないですか?

    合わせて、データベースのオプション:自動圧縮がTrueになってて圧縮されたとかって事は無いかなぁ・・・

    • 編集済み aviator__ 2012年8月15日 0:18 最後の行を追記
    2012年8月15日 0:13
  • データベースオプションの自動圧縮はfalseとなっています。データベースを圧縮すると断片化が進む事例があるのでしょうか?

    今回は単純にアタッチだけの処理をしています。他にチェックポイントはありますか?

    2012年8月17日 13:17
  • 作業の目的がハードウェアの移行であれば、という前提ですので的外れかもしれませんが、なんとなく気になったもので・・・

    もしハードディスクを入れ替えているのであれば、新旧でハードディスクのセクタサイズが変わってないでしょうか?
    一昔前のHDDだとセクタサイズが512Bですが、最近のHDDはビッグセクタ(4KB)ですので、
    単純にMDFをコピーしても物理的なデータの配置が変わる事はあり得ますよ。

    2012年8月17日 13:50
  • データベースオプションの自動圧縮はfalseとなっています。データベースを圧縮すると断片化が進む事例があるのでしょうか?

    あります。

    今回のケースとは関係無さそうですが。

    2012年8月20日 0:06
  • 回答ありがとうございました。

    INDEXの再構築(DBCC DBREINDEX)を連続して行った場合に1回目よりも2回目の方が断片化率が進んでしまう事象も発生しております。

    定期的に断片化の傾向を見ながら、再構築を実施します。

    最適なインデックスの再構築の運用事例があれば、ご教示いただきたいです。

    2012年8月22日 6:24