私のインスタンスのtempdbは、使用可能なディスク領域をすべて枯渇させ、アプリケーションを停止させました。緊急時にインスタンスを再起動しなければならなかった。しかし、私は調査し、temp dbが突然巨大に成長する原因について深く掘り下げたい。何がクエリであり、これを成功させたプロセスですか?誰かが私に必要な情報を引き出すのを助けることができますか?私は、SQL Serevrから歴史的データの多くを得ることはないと知っています。私は、IderaのSQL診断マネージャ(サードパーティツール)を導入しました。ツールを使用するための助けがあれば本当に感謝しています。SQL Server 2005- tempdbが巨大に成長する原因を調べる
答えて
tempdbが非常に大きくなる原因はいくつかあります。
ソートの多くに - これはあなたのSQL Serverが、それはtempdbの
DBCC内のすべての一時結果を格納するたよりも多くのメモリを必要とする場合コマンド - あなたが頻繁なDBCC CHECKDBなどのコマンドを実行している場合、これはあるかもしれません原因。これらの機能は、一時DBに
非常に大きな結果セットをその結果を格納する - これらはまた、バルクインサートとして適切
重い取引の多くを実行するために一時DBを使用している詳細http://msdn.microsoft.com/en-us/library/ms176029.aspxのため
チェックアウトこの記事これをトラブルシューティングする方法については、
AK2, Idera DMツールもあります。あなたのtempdbがどれくらいの時間に時間枠を知っていたら、IderaツールのHistoryに行き、その時点でどのクエリが実行されていて、どのサーバーがホースにつながっているのかを知ることができます... "Tempdb Space overTime通常、直線やグラフが表示されますが、tempdbを頻繁に使用するときには、パイとストレートドロップがあります。この時間枠を参照すると、セッション>詳細も確認できます。正確なクエリとそのクエリを実行したユーザーが表示されます。
これは通常、多数の結合を行う長いクエリがある場合に発生します。 tempテーブル/テーブル変数へのダンプに関連する高価なクエリがある場合に発生します。 これが役立つことを願っています。
SQL Profiler
を使用できます。事後分析のために、すでにサーバーにインストールされているツールを使用することができたよう
下のリンクをお試しください。将来の積極的な分析のために、SQLプロファイラでSQLトレースを直接使用するか、SQL文を使用してトレースをクエリできます。あなたはまた、ApexSQL Complyとして、SQL Serverインスタンスおよびデータベースに起こったすべてのイベントを追跡する監査ツールを使用することができます
。また、SQLトレースを使用して自動的に構成し、キャプチャされた情報を処理します。オブジェクトとデータのアクセスと変更、失敗したログインと成功したログイン、セキュリティの変更などを追跡します。ApexSQL Complyはすべてのキャプチャされた情報を集中リポジトリにロードします。
私はあなたが事後分析を行うことができるとは思いません。ただし、tempdbの使用状況を追跡する方法については、ここをクリックしてください。http://technet.microsoft.com/library/Cc966545 –