7

SQL Server 2000システムには、無制限に大きくなるように見えるtemplog.ldfファイルがあります。しかし、確認すると、(DBCC OPENTRANを使用して)tempdbに開いているトランザクションがないことも、tempdb内で明示的なトランザクションを使用することもありません。

ただし、ストアドプロシージャ内で一時テーブルを使用しています。そして、ASP.NETデータアクセスオブジェクトが舞台裏で何をする可能性があるかを誰が知っていますか?データベースはASP.NETWebサイトをサポートしています。

とにかく、tempdb.mdfファイル(tempdbデータファイル)はかなり妥当な700MBです。templog.ldfファイルは1日で30GBまで増大する可能性があります。ディスク容量が不足していなければ、おそらくもっと多いでしょう。ストアドプロシージャに#tablesを明示的にドロップしませんが、mdfファイルが非常に大きくなることはありません。

未処理のトランザクションがないのに、なぜトランザクションログが大きくなるのですか?トランザクションログはスペースを再利用しますか?また、DUMP TRAN WITH NO_LOGは、ファイルを縮小せず、TRUNCを介したCHECKPOINTイベントも行いません。tempdbでログオンchkptが有効になっています。SQL Serverを停止すると、tempdbがクリアされます(おそらくDBCC SHRINKFILEはクリアしますが、私はそれを実行していません)。

ご協力いただきありがとうございます!

4

1 に答える 1

2

これらを読んでください:

トランザクション ログの切り捨ては
次の点 に注意してください。ログの切り捨ては、常に tempdb のチェックポイントで発生します。 http://technet.microsoft.com/en-us/library/aa174538(SQL.80).aspx

tempdb パフォーマンスの最適化
http://technet.microsoft.com/en-us/library/aa178421(SQL.80).aspx

私の templog.ldf は巨大 (45 GB) です。 https://serverfault.com/questions/61479/my-templog-ldf-is-huge-45gb-what-if-anything-should-i-do

于 2009-09-03T12:34:12.327 に答える