0

SQL サーバーの再起動時 (または) データベースを縮小すると、割り当て解除されたメモリが解放されることを理解していますが、残念ながら、これはクライアントにとって適切な回避策ではありません。

一時データベースのサイズが 10 MB の場合、プロシージャの実行後に 500 MB に拡張されます。一時データベースの空きサイズは 490 MB です。割り当てられたサイズを解放し、再度取得する方法はありますか。再起動または縮小せずに、tempdb を 10 MB に戻します。手動で??

4

2 に答える 2

1

ここでは、再起動または縮小が最も影響力のあるオプションになりますが、(自己責任で) DBCC を使用して一部のキャッシュとバッファーをクリアします (例: DBCC FREEPROCCACHE、DBCC DROPCLEANBUFFERS)。

すでにお気づきかもしれませんが、再起動しても実際にサイズが縮小するわけではありません。インスタンスが再起動すると、新しい tempdb が完全にデフォルトのサイズに作成され、構成されたレートで自動拡張されます。これは、インスタンスの tempdb を最適化するときに多くの人が最初に検討する領域の 1 つです。通常は、tempdb の初期サイズを拡張する必要のないサイズに設定して、自動拡張する必要がないようにすることをお勧めします。

圧縮はファイルのサイズ変更ですが、通常は望ましくありません。特に、圧縮中に破損を引き起こす可能性のあるデータベースに開いているトランザクションが存在するときに実行するリスクがある場合は特にそうです。

アプローチに関係なく、このようなことを行うには非常に注意してください。

于 2015-01-07T05:23:36.333 に答える