0

SQL Server 2005 を使用しています。最近、tempdb のサイズが大きいため、SQL Server 2005 が本番環境でクラッシュしました。1) tempdb のサイズが大きくなる理由は何ですか? 2) tempdb にあるデータを調べる方法はありますか?

4

4 に答える 4

1

2) tempdb にあるデータを調べる方法はありますか?

いいえ、そこに保管されていないためです。Tempdb は、サーバーを再起動するたびに削除されるなど、非常に特別な扱いを受けます。

1) tempdb のサイズが大きくなる理由は何ですか?

非効率的な SQL、メンテナンス ジョブ、または手元にあるデータのみ。明らかに、800 GB、6000 GB のデータベースは、4 GB のオンライン CRM 試行よりも多くの tempdb スペースを必要とする場合があります。絶対的にサイズを指定する必要はありません。大きいとは?小規模なサーバーで tempdb データベースを 64 GB にハードコーディングしています。

Tempdb に入る典型的な SQL は次のとおりです。

  • クエリの一部として解決できない並べ替え (キーをどこかに保存する必要があります)
  • 明確。double を検索するには、tempdb で返されたすべてのデータが必要です。
  • 結合中に特定のポエレーションが発生する可能性があります。
  • Tempdb の使用状況 (一時テーブル)。ロードとスクラブ中に数百メガバイト相当のデータを保持することが多いため、それらについて言及するだけです。

一般に、これらのクエリは、クエリ ログに大量の IO 統計があるか、単純に遅いことで見つけることができます。

とはいえ、メンテナンス計画もそこに含まれますが、それには理由があります。最後に、あなたの「大きい」はおそらく私のものであり、「小さいことに言及する価値さえありません」。それは本当にあなたが何をするかによって異なります。クエリ トレース ツールを使用して、時間がかかるものを見つけます。

物理的には、Tempdb の処理は非常に特殊です。SQL サーバーは、必要がない場合はファイルに書き込みません (つまり、ファイルをメモリに保持します)。ディスクへの書き込みは、メモリ フローがオフになっている兆候です。これは、通常の db 書き込み動作とは異なります。Tempdb がオーバーフローする場合は、かなり高速な SSD に配置するのが最適です...それでも比較的小さいため、通常はそれほど高価にはなりません。

ここのクエリを使用して、tempdb の他のクエリを見つけます。基本的に、ここでは汚れた水で釣りをしているので、犯人が見つかるまで試してみる必要があります。

于 2011-03-11T05:58:57.627 に答える
0

OKtempdbはちょっと特別なデータベースです。プロシージャなどで使用する一時オブジェクトは、ここで作成されます。したがって、アプリケーションがクエリで多数の一時テーブルを使用する場合、それらはすべてここに存在しますが、接続(spid)がリセットされた後にクリーンアップする必要があります。

tempdbを増大させる可能性のあるもう1つのことは、データベースのメンテナンスタスクですが、データベースのログファイルに大きな負担がかかります。

また、SQLサービスを再起動するたびにTempdbもクリアされます。基本的にデータベースを削除して再作成します。tempdbをそのままにしておくことについて、@ Nicに同意します。いじくり回さないでください。tempdbのスペースに問題がある場合は、通常、別の大きな問題を示しています。より多くのスペースが問題を覆い隠しますが、それは非常に長い間だけです。tempdbを使用しているドライブの空き容量はどれくらいですか?

他のことは、まだの場合は、tempdbを独自のドライブに配置してみてください。可能であれば、データとログファイルを独自のドライブに配置してください。

したがって、SQL Server /サービスを再起動しないと、ドライブの容量がすぐに不足します。

于 2011-03-11T04:10:00.743 に答える
0

SQL Server データベースを拡張する通常の方法は、tempdbデータとログ ファイル (特にログ ファイル) を自動拡張に設定することです。SQL Server は、利用可能なすべてのディスク領域を消費するまで、ログ ファイルとデータ ファイルを完全に拡張します。

私見のベスト プラクティスは、データ ファイルの制限付き自動拡張を許可し (拡張可能なサイズに上限を設定)、ログ ファイルのサイズを修正することです。ログ ファイルに必要なサイズを把握するために、何らかの分析が必要になる場合があります。特に tempdb の場合は、復旧モデルもシンプルに設定する必要があります。

于 2011-03-11T02:51:17.420 に答える