web-dev-qa-db-ja.com

SQLServerの個別のデータファイル

データファイルを別々のファイルに分割する場合、通常は同じファイルでテーブルを一緒にクエリすることに利点はありますか?

私はそれに反対していますが、ベンダーはセットアップの一部としてそれを提案しました。パフォーマンスに役立つ可能性があります。DBは現在400GBです。ファイルも同じドライブにあります。これは単なるテストなので、同様のサーバーでファイルを分割してから、いくつかのテストを実行して、パフォーマンスが向上するかどうかを確認します。しかし、ファイルを分割するとき、一緒にクエリされたテーブルは(可能であれば)同じファイルに保持されるべきですか?

これは別のディスクではないので、これによるメリットが見られるかどうかはわかりません。データファイルはRAID10の4つのSSDドライブにあります。ファイルを分割する必要があります。詳細な監視を行わずにベンダーDBがどのように照会されるかわからないため、テーブルを別のファイルにグループ化する方法がわかりません。

.ndfファイル(ファイルグループ)を参照しています。テーブルをファイルグループに割り当てる際のベストプラクティスはありますか?

2
davey

NDFはファイルグループではありません。 NDFファイルは追加のデータファイルです。ファイルを追加することでパフォーマンスが向上する場合と、そうでない場合があります。

読む ベンチマーク:複数のデータファイルが違いを生むか? PaulRandalによる。

私が考えていたのは、追加のファイルグループです。これにより、新しいファイルグループにオブジェクトを作成し、そのグループを別のファイル(NDF)に配置します。 I/Oを容易にするために、頻繁にアクセスされる大きなテーブルは、それらのファイルグループが別々のファイルにあり、それらのファイルが異なるLUNにあり、LUNが別々のスピンドルにある場合など、別々のファイルグループでパフォーマンスを向上させます。

ディスクが1つしかない場合は、違いが目立たない場合があります。

また、Microsoftの ファイルとファイルグループの使用 もご覧ください。

SSDの場合、アレイの構成とストレージのクラスによって異なります。 SSDのスループットは高くありませんが、レイテンシーは低いため、最初にパフォーマンステストを実行し、本番ワークロードでSLAを満たすのに十分かどうかを確認する必要があります。結局のところ、徹底的に行う必要があります。パフォーマンステストはあなたの疑問を解消することができます。

2
Marcin Gminski