競合を減らすように tempdb を設定します - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

競合を減らすように tempdb を設定します

tempdb は、等しいサイズと等しい成長率を持つ複数のデータファイルで構成することを推奨します。

tempdb を頻繁に使用する負荷の高いデータベースサーバーでは、サーバーの負荷が高くなると深刻なブロックが発生することがあります。タスクが tempdb 内のページを指す待機リソースを待っていることに気付くかもしれません。これらのページは、2:xxという形式 (例えば、2:1:1 または 2:1:2) のフォーマットを持つ ページ空き領域 (PFS) および共有グローバルアロケーションマップ (SGM) ページ である可能性があります。

tempdb の同時実行性を向上させるには、tempdb 内のデータファイルの数を増やしてディスク帯域幅を最大化し、割り当て構造における競合を減らすことができます。次にいくつかのガイドラインを示します。

  • 論理プロセッサ数が 8 以下の場合:同じ数のデータファイルと論理プロセッサを使用します。

  • 論理プロセッサ数が 8 以上の場合:8 個のデータファイルを使用します。

競合が続く場合は、競合が解消されるまで、データファイルの数を 4 の倍数で、サーバー上の論理プロセッサの数まで増やします。これにより、tempdb での SGAM 競合を回避できます。SQL Server 2014またはそれ以前のバージョンを使用している場合は、トレースフラグ1118も有効にする必要があります。このフラグは、混合エクステントではなく均一なエクステントにページ割り当てを強制するため、SGAM ページでのスキャンが最小限に抑えられ、競合が減少します。

SQL Server 2016 (13.x) から、この動作は ALTER DATABASEAUTOGROW_SINGLE_FILE オプションと AUTOGROW_ALL_FILES オプションによって制御されるようになりました。例:

alter database <database name> MODIFY FILEGROUP [PRIMARY] AUTOGROW_ALL_FILES

これらのオプションの設定については、Microsoft SQL Server のドキュメントを参照してください。