SQL Serverでは、PRIMARY Data FileGroupをいつセカンダリデータファイルに分割する必要がありますか?


11

私たちのデータベースは現在、およそ8GBのデータ(テーブル行、インデックス、フルテキストカタログ)を含むPRIMARYという1つのファイルグループのみを持っています。

これを2次データファイルに分割する適切なタイミングはいつですか?知っておくべき基準は何ですか?

回答:


20

この質問には2つの部分があります。新しいFILEGROUPを追加するタイミングと、ファイルグループに新しいFILEを追加するタイミングです。最初に理論について話しましょう:

主な理由はパフォーマンスであるというマークの権利。

2番目の理由は、災害復旧です。SQL Server 2005以降では、ファイルグループの復元を実行できます。災害が発生した場合、最初にプライマリファイルグループのみを復元し、クエリのためにデータベースを部分的にオンラインにすることができます。ユーザーは、他のファイルグループを復元しているときにクエリを実行できます。これは、すぐには必要ない可能性がある履歴データが大量にあるデータベース、またはアクセスするために履歴データを必要とせずに現在のテーブルにデータをロードする必要があるデータウェアハウスに役立ちます。

もう1つの理由は、データグループの読み取り/書き込みプロファイルです。常に書き込まれているデータと、読み取りアクティビティが頻繁に発生する他のデータがある場合、それらのニーズに対応するためにさまざまなタイプのストレージを構築できます。重い書き込みのものをraid 10に置き、read-biasされたものをより安いraid 5のままにしておくことができます。

それでは、ファイルとファイルグループについて話しましょう。SQL Serverにオブジェクトを配置するときは、ファイルグループレベルに配置する必要があります。テーブルまたはインデックスをファイルグループに配置できますが、特定のファイルを選択することはできません。これまで説明してきたことは、ファイルグループをいつ追加するかについてでしたが、いつファイルを追加しますか?

ストレージを設計していて、80台のハードドライブがある場合、いくつかの方法で分割できます。

  • 80ドライブの1つのプール
  • 40ドライブの2つのプール
  • 20ドライブの4つのプールなど...

ストレージサブシステムが異なれば、パフォーマンスプロファイルも異なります。12〜16個のドライブアレイで最高のパフォーマンスを発揮したSANをいくつか使用しましたが、それより大きなものではパフォーマンスが向上しませんでした。別の例は、マルチパスを備えたSANです。サーバーをストレージに接続している複数のHBAがあり、マルチパスソフトウェアが実際にアクティブ/アクティブでない場合、負荷を分散するためにパスごとに1つのアレイが必要になる場合があります。4つのパス、4つのドライブプールは、これらのタイプのドライブのパフォーマンスを向上させます。

これらの場合、Windowsでは4つの異なるアレイ、4つの異なるドライブ(マウントポイントを使用しない限り、さらには異なるフォルダーである場合)となり、SQL Serverには4つの個別のファイルが必要になります。これらの個別のファイルは、同じファイルグループに含めることができます。


1
うん...メリットのスポット分析。私が追加する唯一のことは、頻繁にアクセスされるテーブルのインデックスを頻繁にオフロードして独自のスピンドル/ファイルグループにオフロードして、非同期/先読みのパフォーマンスを向上できることです。大規模な展開でいくつかのケースでそれを実行し、SANベンダーが必要なスループットを得る必要があると誓ったハードウェアコストを企業が数万ドル節約できるようにしました。
マイケルKキャンベル

6

主な理由はパフォーマンスです。プライマリファイルグループのディスクドライブでIOPS容量が不足した場合、ストレージ構成に応じてIOPSを複数のディスク/ LUNに分割するには、2番目のファイルグループに拡張する必要があります。

編集:ブラッドウィルソンはSSDに関して良いコメントをしました。複合SSD / SATA / FCストレージシステムを使用している場合、さまざまな種類のストレージにさまざまなファイルグループを配置することができます。その後、極端なIOPS要件テーブルをSSD filegropusに配置できますが、履歴/統計テーブルは安価なSATAファイルグループに保存できます。


2
SSDは、超低レイテンシのためにデータを飽和させることがどれほど困難かを考えると、データの分割について考える方法に大きな変更を加える機会があります。
ブラッドウィルソン

確かに、良い点です!
マークS.ラスムッセン

1

また、この質問には回復可能性/データ可用性の側面があることも指摘しておきます。複数のファイルグループを使用し、プライマリファイルグループにユーザー定義のオブジェクトを配置しないことで、オンラインリストアをより柔軟に有効にすることができます。これにより、ファイルグループレベルで断片的な復元が可能になります。

オンライン復元は、2005年以降のSQL ServerのEnterpriseおよびDeveloperエディションで利用可能です

頭に浮かぶもう1つの考えは、読み取り専用の静的参照データをトランザクションデータから分離することです。大規模なデータベースの場合、これにより、バックアップの実行に必要な時間および/またはスペースを削減できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.