none
SQL Serverのデフラグについて RRS feed

  • 質問

  • SQL Server機のデフラグについて。

    SQL Serverの導入に当たり、他社製のデフラグツール(Diskeeperなど)について調べていたのですが、そもそもSQL Serverはスケジューリングされたデフラグを実行しても良いものなのでしょうか? デフラグツールメーカのサイトを確認する限り、断片化を解消することで早くなるというような最もな説明はあるのですが、実運用時にインデックスの再構築や再編成、バックアップなどが実施されている場合に、OS側のデフラグツールが実行されても大丈夫なものなのかどうか少し不安になりました。

    お分かりになりましたら、よろしくお願いします。

    2012年7月30日 2:17

回答

  • データベースのデーターページのフラグメントの解消に、一般的なディスクデフラグツールは利用できませんよ。diskeeper でもデフラグ対象ではないことも明記されています。diskeeper はデフラグ以外にディスク I/O パフォーマンスの向上機能をもっていて、その結果としてデーターページのデフラグにかかる時間を減らせることは売りにしていますが、その機能を持つわけではないです。

    レコードの追加削除で発生するSQL Serverのデータページのフラグメントと、ディスク上のフラグメントは全く別物なので、それぞれ別に対応を考える必要があると思います。

    • 回答としてマーク lixy 2012年7月31日 0:45
    2012年7月30日 23:48

すべての返信

  • デフラグそのものには問題ないと思いますが、多くの場合にはフラグメントが起こらないようなディスクレイアウトを導入時に設計するものだと思います。(デフラグなしにフラグメント0%を維持できるように設計する)

    Diskeeper は、昔はフィルタドライバが SQL Server のデータベースを破壊するという既知の問題があり、セットアップ時に無効にするようにということが記載されていたみたいですが、最近は特に問題もないようですね。

    2012年7月30日 3:46
  • ご回答、ありがとうございます。

    データベースを破壊するデフラグツールですか。。 何のためのツールなのかわからなくなってしまいますね。
    今回、実際にデフラグツールを導入することになった場合には、トライアル版での仮インストール、及び検証をした上での実運用となる予定です。

    takaoka様、ご返信内の「デフラグなしにフラグメント0%を維持できるように設計」というのは、FillFactorを使用して最初からページの余裕を持たしておくということでしょうか?  それとも何か別の方法で断片化が発生しないようにすることができるのでしょうか。。 

     今回当方で検討中のデータベースではレコードの「追記」、「削除」が頻繁に行われる為、断片化は避けられないものだと考えていたのですが、フラグメントを軽減できる方法があるなら試してみたいと思います。

    よろしくお願いします

    2012年7月30日 6:24
  • データベースのデーターページのフラグメントの解消に、一般的なディスクデフラグツールは利用できませんよ。diskeeper でもデフラグ対象ではないことも明記されています。diskeeper はデフラグ以外にディスク I/O パフォーマンスの向上機能をもっていて、その結果としてデーターページのデフラグにかかる時間を減らせることは売りにしていますが、その機能を持つわけではないです。

    レコードの追加削除で発生するSQL Serverのデータページのフラグメントと、ディスク上のフラグメントは全く別物なので、それぞれ別に対応を考える必要があると思います。

    • 回答としてマーク lixy 2012年7月31日 0:45
    2012年7月30日 23:48
  • SQL Server のデータページデフラグとディスクデフラグを混同して考えており、誤った設計をしてしまうところでした。。

    大変助かりました。

    もう少し、その辺のことを調べ直し、断片化が0%を維持する仕組みを考えたいと思います。

    takaoka様、この度はありがとうございました。

    2012年7月31日 0:51