2009-08-13 8 views
2

これは実際には2つの問題です。グローバルTempテーブルを使用したTempDBログファイルの増加

グローバルtempテーブルを使用しているときに、SQLサーバーが多くのtempDBを消費するという現象が発生しました。ローカルtempテーブルを使用するとデータファイルスペースが消費されますか?

これは正常ですか?グローバルな一時表とローカルの一時表を使用するときに、ログファイルの領域を消費する方法については、Web上のどこにも見つけることができません。これは正常な動作である場合

つ、この:)をしないことを伝えるためにどのような方法があります。私は多くのデータスペース(6 GB)を持っていますが、ログスペースは限られています(限られた成長で750 MB)。いつものように、tempDBはシンプルリカバリでセットアップされているので、ログファイルのスペース制限を実行することはこれまで問題になっていませんでしたが、前にも使用していたように、グローバルな一時テーブルを使用したことはありません。

ありがとうございます!ジョエル

一時テーブルのいずれかの形式がテーブルが物理的に作成され、tempdbデータベースに格納されている(ローカルまたはグローバル)が作成され

答えて

1

。したがって、これらのテーブルのトランザクションアクティビティはすべて、tempdbトランザクションログファイルに記録されます。

ことにより、このデータベースに関連付けられたデータとトランザクションログファイルを使用して、ユーザーデータベース内のデータを格納するために一時テーブルとは対照的に、しかし、あなたは物理的なテーブルを実装できると言うあたりの設定はありません。

あなたが本当に次のリソースを見てみましょうで動けなくなると、tempdbデータベースについて学びたいのであれば

Everyning you ever wanted to know about the tempdb database

+0

こんにちはJohn、迅速な対応に感謝します。グローバルテンポラリテーブルとローカルテンポラリテーブルを使用すると、私が見ていることはまったく違った動作になると思います。 ローカルtempテーブルは、グローバルtempテーブルとほとんど同じようにログファイルに影響を与えません。グローバルtempテーブルを使用すると、データファイルの代わりにデータが格納されているかのようにログファイルが大きくなりますが、ローカルtempテーブルを使用すると、通常のペースと見なされるようになります。 – JayRu

0

これらのグローバル一時テーブルの1の寿命は何ですか?彼らは合理的な時間に落ちたのですか?その前に手作業でなくても、ユーザーが切断すると「通常」の一時表が削除され、作成セッションが終了したときにメモリーが使用されると「グローバル」(##)一時表が削除されます。なぜなら、一時テーブルの活動を管理するログレコードがアクティブなログレコードとしてマークされ、ログバックアップ(フルリカバリ)によって解放されない可能性があるからです。上述のように、またはセッションのチェックポイント(単純)

+0

非常に面白い考え、そしておそらく正しいかもしれません。 私の場合は、グローバルtempテーブルに行が追加されるとすぐにログファイルが増加するので、寿命が問題であるかどうかわかりません。たぶんローカルテンポラリテーブルも同様の方法でログを増やすことができますが、ログバックアップは進んでいくことができますが、単純にいくらか成長して切り捨てることができます...私は調査する必要があります。 – JayRu

0

長さが影響を与えることになります。

また、一時テーブルは、トランザクションのコンテキスト外でトランザクションおよびテーブル変数の作業内で機能します。このため、一時ファイルは、テーブルの使用に関する更新に関連するログファイルのエントリを記録します。

関連する問題