web-dev-qa-db-ja.com

Tempdbの変更設定と推奨事項

私の本番データベースでは、TempDbに以下の構成があり、言うまでもなく、IO問題に直面しています。したがって、 推奨 のように計画していますそれを変える

enter image description here

変更#1別のドライブに2つの.mdfファイルを追加します。

変更#2tempdb .mdfサイズの初期サイズを1024に、自動拡張を10%に変更します。

変更#3.ldfの自動拡張を50%に変更

3つの質問があります。

  • 推奨や修正が必要ですか?
  • 新しいファイルを作成し、初期サイズまたは自動拡張を変更する場合、SQL Serverを再起動する必要がありますか、それともSQL Serverに影響を与える可能性がありますか?
  • 追加の.ndfまたはログファイルも作成する必要がありますか?

私の他の質問の参照

「ログフル」エラーを回避するためにSQL Serverのログ操作を最小限に抑える方法

ログファイルの非アクティブトランザクションの処理と縮小

IOリクエスト時間と少ない書き込みレイテンシー

ポール推奨 に従って、20のtemdbファイルを作成する必要がありますか?

enter image description here

4
Zerotoinfinity

Paulの推奨事項と KB 2154845 に記載されているように、8つのファイルを使用し、必要に応じて調整します。

原則として、論理プロセッサの数が8以下の場合は、論理プロセッサと同じ数のデータファイルを使用します。論理プロセッサの数が8より大きい場合は、8つのデータファイルを使用し、競合が続く場合は、競合が許容レベルに減少するまで、または4の倍数(論理プロセッサの数まで)だけデータファイルの数を増やします。ワークロード/コードの変更。

ここで、tempdbファイルが自動拡張を必要としないように作成されていること、およびそれらがすべて同じサイズで、パーセンタイルではない同じ拡張パラメーターであることを確認してください。

これでtempdbは約140 GBになり、プロビジョニングする必要があるサイズとほぼ同じになります。 8x15-20 GBのデータファイルと1つのログファイルを作成し(トランザクションログは順次使用されるため)、すべてのファイルにまったく同じ拡張パラメーターを設定します。インスタントファイル割り当てを使用している場合、ストレージ上で意味のある512MBは問題ありません。トランザクションログは約5 GBなので、トランザクションログ用の単一の6〜8 GBファイルを作成し、自動拡張をMB単位に設定します。ログの増加は、瞬時のファイル割り当ての影響を受けないため、そのパラメーターをデータベースファイルのパラメーターよりも小さくしてください。

それでも競合が見られる場合は、16x 8-10 GBファイルを使用し、トランザクションログパラメータは変更しないでください。

3
Spörri