17

新しいマシンにSQL Server 2005を新規インストールする予定で、注文する必要があります。SQL Server インスタンスの全体的なパフォーマンスにとって、 tempdb のチューニングが非常に重要であることはわかっています。

CPU (またはコア?) と同じ数の tempdb ファイルを作成することがベスト プラクティスであることを読みました。あれは正しいですか?ハードディスク/RAID セットアップ構成など、他に注意すべき推奨事項はありますか?

ありがとう!

4

4 に答える 4

32

これは私がさまざまな情報源から自分で調べたものです。

tempdb のパフォーマンスを最適化するには、物理​​ディスクの構成、ファイルの構成、およびデータベース内のいくつかの設定に注意してください。

物理ディスク構成

tempdb は専用の物理ディスク上に存在する必要があります。これにより、SQL Server 上の残りのボリュームから I/O トランザクションを分割できます。

tempdb を新しいディスク ドライブに移動するには、ALTER DATABASE. この操作を実行するのは、重要な T-SQL コマンドです。Microsoft は、SQL Server 2005 Books Online で良い例を提供しています。記事名は ALTER DATABASE (Transact-SQL) で、特定のセクションは「G. tempdb を新しい場所に移動しています。

tempdb は非常に書き込み頻度の高いデータベースです。そのため、RAID 5 アレイは適切な場所ではありません。書き込み頻度の高いアプリケーション向けに最適化されているため、tempdbは RAID 0 または RAID 10 アレイに配置する必要があります。tempdb の物理データベース ファイルごとに RAID 0 または RAID 10 アレイを追加できる場合は、パフォーマンスが向上します。

データベースファイル

サーバーの CPU コアごとに 1 つの物理ファイルが必要です。したがって、デュアル チップ、デュアル コア サーバーを使用している場合は、tempdb データベース用に 4 つの物理データベース ファイルが必要です。さらにデータベース ファイルを追加する場合は、同じ初期サイズと同じ拡張設定でファイルを構成することが重要です。そうすれば、SQL Server はファイル全体にできるだけ均等にデータを書き込みます。

データベース ファイルのサイズ

tempdb データベースのサイズは、システムのパフォーマンスに影響を与える可能性があります。たとえば、tempdb に定義されているサイズが小さすぎると、SQL Server のインスタンスを再起動するたびに、ワークロードをサポートするのに必要なサイズに自動的に拡張される te​​mpdbによって、システム処理負荷の一部が使用される可能性があります。tempdb データとログ ファイルのサイズを大きくすることで、このオーバーヘッドを回避できます。

運用環境での tempdb の適切なサイズの決定は、既存のワークロードや使用されている SQL Server 機能など、多くの要因によって異なります。Microsoft では、SQL Serverテスト環境で次のタスクを実行して、既存のワークロードを分析することをお勧めします。

  1. tempdb の autogrow をオンに設定します(テスト環境で!)
  2. 個々のクエリまたはワークロード トレース ファイルを実行し、tempdb 領域の使用を監視します。
  3. インデックスの再構築や tempdb 領域の監視など、インデックスのメンテナンス操作を実行します。
  4. 前のステップのスペース使用量の値を使用して、ワークロードの合計使用量を予測します。予測される同時アクティビティに合わせてこの値を調整し、それに応じて tempdb のサイズを設定します。

tempdb の最小サイズの推奨事項は次のとおりです。

   Envir. Size  DB Size (MB)  Log Size (MB)
   -----------  ------------  -------------
   Small                1024            256
   Medium               5120           1024
   Large               10024           2048

データベース設定

auto update statsを無効にすることで、tempdb のパフォーマンスをさらに向上させることができます。これにより、tempdb の作業が節約されます。auto create statistics オプションを false に設定することもできます。

免責事項: 設定は慎重に変更する必要があります。tempdb にかける負荷の種類によっては、設定を変更するとシステム パフォーマンスに悪影響を及ぼす可能性があります。

最適な tempdb パフォーマンスを実現するには、 Optimizing tempdb Performanceに記載されているガイドラインと推奨事項に従ってください。

tempdb の使用状況を監視する方法は?

tempdb のディスク領域が不足すると、SQL Server の運用環境が大幅に中断され、実行中のアプリケーションが操作を完了できなくなる可能性があります。

動的管理ビューを使用sys.dm_db_file_space_usageして、tempdb ファイルでこれらの機能によって使用されるディスク領域を監視できます。さらに、セッション レベルまたはタスク レベルで tempdb のページの割り当てまたは割り当て解除のアクティビティを監視するには、sys.dm_db_session_space_usageおよびsys.dm_db_task_space_usage動的管理ビューを使用できます。

これらのビューを使用して、大量の tempdb ディスク領域を使用している大規模なクエリ、一時テーブル、またはテーブル変数を特定できます。tempdb で使用可能な空き領域と、tempdb を使用しているリソースを監視するために使用できるカウンターもいくつかあります。

リンク:

于 2008-12-12T12:41:34.023 に答える
2

私が読んだことから、tempDB を独自の物理ディスク (またはアレイ) に配置することをお勧めします。最大速度を得るには、raid 0 アレイを使用できます。ただし、ディスクの 1 つに障害が発生すると、DB サーバーは動作しなくなります。さらに冗長性が必要な場合は、raid 10 アレイに配置します。TempDB には非常に多くのアクティビティが存在する可能性があるため、本当の鍵は他のデータベースから分離しているようです。

どこまで行くかは、サーバー上の他のデータベースと、一時テーブルなどで多くの作業を行うかどうかによって異なります.

CPU またはコアの数に基づく複数のファイルについては何も聞いたことがありません。

于 2008-12-11T17:14:13.330 に答える
2

tempdb に関するいくつかの問題に触れているサーバー レイアウトに関する議論を含むこの投稿SQL Server トランザクション ログ RAIDも参照してください。

于 2008-12-11T17:22:57.727 に答える
0

1/2 ~ 1/4 * コア数のデータ ファイルを作成することをお勧めします。これらのファイルは、持っている最速のディスクに配置する必要があります

詳細については、ここを参照してください: SQL Server tempdb 構成

于 2013-03-06T00:31:23.423 に答える