web-dev-qa-db-ja.com

SQL Server tempdbのサイズが大きいようですが、これは正常ですか?

私の理解から システムデータベースは、一時テーブル、中間結果、およびその他の一時情報を保持するために使用されます。

データベースインスタンスの1つに、非常に大きい(30 GB)ように見えるtempdbがあります。このデータベースは(mdfファイルの「最終更新日」のように)1週間以上変更されていません。 temp dbをその長い期間にわたってそれほど大きくすることは正常ですか?それはかなり頻繁に更新され、かなり速く使用しているスペースを返すはずです...

私はここから離れていますか、それともSQL Serverは奇妙なことをしていますか?

参考までに、これはSharePoint 2010データベースです。違いがあるかどうかはわかりません。

4
Abe Miessler

TempDBはAUTOSHRINKを実行せず、TempDBをAUTOSHRINKに設定することはできません。 TempDBが30GBに増加した場合、それは理由によりそのサイズに増加した可能性があります。そのため、サイズを小さく変更すると、再びそのサイズに増加する可能性があります。

TempDBの構成に関するいくつかの提案については、次のリンクを確認してください。

TempDBパフォーマンスの最適化

TempDBの容量計画

7

SQL Serverデータベースファイルは、指示されない限り、自動的には圧縮されません。 (そして、拡張/縮小を繰り返すとディスクの断片化が大量に発生するので、私はそれをお勧めしません。)つまり、tempdbの大きさを調べ、その計画を立てます。データファイルを適切に開始するように設定する(SQL Serverの起動時にデータファイルが最初から再作成されるため)のは、一般的に推奨されるアプローチです。

4
db2

ファイルサイズは30 GBと記載されていますが、実際には30 GBのファイルサイズが含まれておらず、空きスペースがいっぱいになっている場合があります。 TEMPDBは、特定のクエリのためにそれだけのスペースを必要としたため、ある時点で30GBに増加しました。

TEMPDBファイルサイズを30GBに設定することをお勧めします。これにより、SQL Serverが再起動されるたびにTEMPDBが再作成されるため、SQL SERVERが再起動された場合に備えて、TEMPDBのサイズが事前設定されます。 TEMPDBのサイズを事前に設定することで、最初にデータベースを拡張するアクティビティ中に、データベースの自動拡張に関連するオーバーヘッドが再度発生することを回避できます。

セクション4のこのページ http://sqlserverpedia.com/wiki/TempDB は、temp dbの事前サイズ設定について説明します。

3
Ian Chamberland