tempdbログファイルのベストプラクティス


11

tempdbデータファイルの構成方法に関するブログを何度も読みましたが、tempdbログファイルに関する情報は見つかりませんでした。

tempdbで現在使用している戦略は次のとおりです。

  • tempdbデータファイルを分割する方法について、Paul Randal推奨事項を使用しました
  • tempdbデータファイルのサイズを最大に設定し、自動拡張を無効にしました。たとえば、100 GBの空きディスク領域があり、8つのtempdbデータファイルのサイズをそれぞれ10 GBに設定します。これにより、Brent Ozarが推奨するディスクの断片化が防止され、ログファイル用に20 GBが解放されます。

しかし、私が言ったように、誰もtempdbログファイルについて話していません。どうすればいいですか?私のセットアップでは、このファイルはtempdbデータファイルと同じ場所にあります。tempdbログファイルで使用するサイズと自動拡張値は何ですか?


4
自動拡張が必要な​​場合にシステムが急停止することを絶対に望まない限り、tempdbデータまたはログの自動拡張を無効にしないことを除いて、これに対する魔法の答えはありません。どのように計画しても、常に異常な状況が発生するため、ファイルの自動拡張を無効にすることはありません。
アーロンバートランド

2
@AaronBertrand:フルサイズのtempdbで自動拡張を有効にしても役に立たない。彼らはすでに彼らのドライブにいることができる彼らの最大にあります。彼らがとにかく使用できるディスク領域はもうありません。これが、自動拡張を無効にした理由です。
Alexandre Jobin

2
それが無効になっているかどうかは関係ありませんか?自動拡張が必要な​​場合、いずれかの方法で失敗します。有効なままにしておくと、大きなドライブに移動する必要があるかもしれないとわかったときに、変更する必要のあることが1つ少なくなります。
アーロンバートランド

1
PS 8 x 20> 100
アーロンベルトラン

1
ファイルを分割することは、必ずしも「良い設定」であるとは限りません。ハードウェア構成によって異なります。あなたが提供していないもの。
Paul

回答:


5

これは、トランザクションログを流れるデータの量によって異なります。今日のログの大きさを見てください。SQLの起動時に、ログを少なくともそのサイズに設定する必要があります。ほとんどのクライアントの場合、tempdbの3〜4ギガのトランザクションログが記録されます。これには、ほんの数個のVLFが含まれており、すべてがスムーズに動作します。


0

パフォーマンスを向上させるためにハードウェアが同時にデータを書き込み、同時にログを記録できる場合は、常にログファイルを別の物理/ディスクアレイに保存するように言われました。20G tempdbの制限を生み出した制限がサイズの答えを定義するのではないかと思います。自動拡張の場合、これは、実行中のトランザクション、使用可能な空き領域、およびディスク上の他のリソースに依存する可能性があります。私は通常、初期サイズの6分の1を任意に選択します。


0

Aaronは正しいです。TempDBの構成は、スナップショット分離の使用を計画するかどうかなど、多くの変数に依存しています。MS/ TNの古いSQL 2005ホワイトペーパーは、かなりの部分がまだ適用されているので役立つかもしれません。具体的には、「tempdbログに必要なスペース」を確認してください。これにより、tempdbログに記録されているトランザクションの種類を確認できるため、それに応じて設定を行うことができます。時間の経過とともに監視して微調整しなければならないようなことになるでしょう。

tempdbのauthogrowthに関しては、過去に不本意ながらこれをレポートサーバーで無効にしており、私が経験した動作では、長時間実行されているトランザクションが中止されてロールバックされ、ログスペースが即座に解放されましたが、私の場合、トランザクションの種類は、大量の並べ替えと結合操作(不十分なレポートクエリ)でした。私はアーロンに同意し、特にトランザクション量が多い状況では、可能であればこれを回避することをお勧めします。

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