web-dev-qa-db-ja.com

複数のファイルグループと1つのファイルグループ内の複数のファイル

私がオンラインで読んだことから、複数のファイルグループが単一のファイルグループに複数のファイルを持っていることに比べて2つの利点しかないようです:

  1. 特定のテーブルを特定のドライブに分離する機能-これを行う唯一の方法は、ターゲットドライブ上のファイルを含む新しいファイルグループを追加し、そこにテーブルを移動することです。

  2. 読み取り専用のファイルグループを使用して段階的に復元することで、復元を高速化できます。

複数のファイルグループが単一のファイルグループ内の複数のファイルよりも優れている他の利点はありますか?私はパフォーマンスの利点に最も興味がありますが、どんなアイデアでも歓迎します。

5
CaptainSlock

ファイルグループ内の複数のファイルと複数のファイルグループは、どちらもデータベースを管理するためのツールです。最初の方法では、IOを管理できます。両方でバックアップを管理できます。

データベースの単一ファイルと単一ファイルグループをバックアップすることが可能です。トランザクションログをどこかに復元する予定がある場合は、トランザクションログの末尾をバックアップしてください。

データベースファイルにより、マルチコアCPUは、より高いディスクキューイング値に達することなく、データベースへの複数の読み取り/書き込みストリームを持つことができます。

ファイルグループを論理的な分割として、ファイルを物理的な分割として考えると役立ちます。複数のファイルグループがある場合、ファイルは1つのファイルグループにしか所属できないため、自動的に複数のファイルが作成されます。また、サーバーに十分な数のコアがある場合は、ファイルグループに複数のファイルを含めることもできます。それはあなたに両方の長所を与えることができます。データベースオブジェクトをファイルではなくファイルグループに割り当てます。ファイルを異なる物理ディスクアレイに置くことができます。私が最初にデータベース作業を始めたとき、データを入れて別のディスクにログオンすることは一般的な知識でした。予算がある場合は、非クラスター化インデックスを別のディスクに配置します。 SANテクノロジーはどこにでもあります。しかし、SANはパフォーマンスツールではなく管理ツールです。

異なるファイルグループを使用することで指摘したように、トラフィックの多いテーブルを互いに、トラフィックの少ないテーブルから分離することができます。また、破損したデータベースからの限定された追加の保護により、データの破損をデータのより小さな部分に限定することもできます。

4

SQL 2016 Standardでは、ファイルグループを使用するテーブルのパーティション分割とパーティション切り替えを利用できます。パーティションの切り替えは、状況に応じてデータ管理を高速化し、パーティションキーを使用して適切に調整されている場合、クエリのパフォーマンスを向上させる可能性があります。

...パーティション全体をテーブルに切り替えたり、テーブルから切り替えたりして、大量のデータを非常に高速にロードおよび削除できます。これは、私の意見では、パーティション分割の最大の利点です。

パーティションのパフォーマンスについて:

条件(別名「where句」)でパーティション化キーを指定すると、クエリのパフォーマンスが向上します。したがって、パーティション化は「透過的」ですが、既存のアプリケーションでは、クエリのチューニングがほとんど常に必要になります。

パフォーマンスと切り替えに関するケンドラ

片側の注意点は、復元をスクリプト化することです。 100以上のファイルグループを手動で復元しようとしていると想像してください。必ずしもマイナス面ではありませんが、事前に準備しておく必要があります。

ファイルグループのブレントオザール

1
Shaulinator