Q:
デフラグはSQLシステムに対して何をしますか?
A:継続的なデータベースのメンテナンスと監視は、SQLシステムをスムーズに実行するために考慮すべき重要な要素です。 データベースが作成され、データが入力されると、最初はデータが連続した物理的な場所に配置されます(十分な連続した物理スペースが利用可能な場合)。 したがって、この場合、データの論理的順序と物理的順序は似ている可能性が高く、パフォーマンスが向上します。
データが変更、削除、または更新されると、関連するインデックスも自動的に更新され、それらの変更が反映されます。 その結果、インデックスが断片化され、情報がストレージスペースに散らばります。 データの物理的な順序を変更し(連続した割り当てが失われるため)、検索に時間がかかり、データベースのパフォーマンスが低下します。
この問題の解決策は、定期的に最適化を実行することです。 デフラグでは、実際にインデックスを再構築または再編成して、データの論理的な順序と物理的な順序を一致させます。 デフラグ操作を実行する前に、すべてのインデックスを適切に分析する必要があります。 分析結果は、再編成または再構築が必要かどうかを決定します。
デフラグプロセスによって実行される2つの主な操作は次のとおりです。
- インデックスの再編成 –フラグメンテーションが低レベルで、パフォーマンスに重大な影響がない場合に、インデックスの再編成が実行されます。 このプロセスは、実際にリーフレベルページの物理的な順序変更を行って、論理的な順序に一致させます。 新しいページは作成されません。 既存のページを並べ替えるだけです。 通常のデータベース操作をブロックせずに、システムがオンラインの間に再編成を実行できます。
- インデックスの再構築 –フラグメンテーションがより深く、パフォーマンスが遅すぎる場合に、インデックスの再構築プロセスが実行されます。 このプロセスでは、元のインデックスが削除され、新しいインデックスが作成されます。 そのため、物理的および論理的な順序が元の位置に戻され、パフォーマンスが向上します。 再構築では、必要に応じて新しいページを作成することもでき、オフラインまたはオンラインモードで実行できます。
したがって、デフラグはSQL Serverのメンテナンスプロセスの一部であり、真剣に検討する必要があります。 適切なクエリ分析計画を作成して従う必要があります。 クエリ分析の出力に基づいて、インデックスの再構築または再編成を行う必要があります。 要するに、デフラグはSQLシステムのパフォーマンス向上に不可欠です。