4

データベース(SQL Server 2005)を縮小すると、パフォーマンスが低下しますか?

シュリンクが適用されると、mdfファイルとldfファイルは正確にどうなりますか(内部???)

4

3 に答える 3

10

データベースを縮小する場合、DBを縮小するためにリソースを消費します。問題が発生するのは、DBを再度拡張する必要がある場合であり、自動拡張が設定されていると仮定すると、自動拡張するためにより多くのリソースが消費されます。一定の自動縮小(または保守計画の一部として縮小)すると、物理ディスクの断片化が発生します。

自動拡張を有効にしていて、デフォルトの1MBに設定されている場合、一定の自動拡張は多くのリソースを消費します。

データベースのサイズを、適切なサイズ、予想される初期サイズに加えて、ある期間(月、年、適切と思われる期間)にわたる予想される成長に合わせてサイズ設定することをお勧めします。自動縮小を使用したり、メンテナンスプログラムの一部として縮小を使用したりしないでください。

また、自動拡張をMBに設定する必要があります(自動拡張の場合、最初に%を計算してからデータベースを拡張する必要があるため、データベースの%ではありません)。また、自動成長を適切な量に設定して、10分ごとに成長しないようにし、1日に1〜2回の成長を目指してください。

SQLServerのインスタント初期化の設定も確認する必要があります。

幸運を、

マット

于 2009-07-12T13:32:59.587 に答える
1

データベースを縮小すると、ページが再配置されることを理解することが重要です。データファイルの最後のページは、断片化に関係なく、ファイルの最初の空きスペースに移動されます。

クラスタ化インデックスは、テーブル内のデータの物理的な順序を決定します。したがって、クラスター化されたインデックスを作成したと想像してください。これにより、そのテーブルのデータが物理的に並べ替えられます。さて、shrinkコマンドを実行すると、クラスター化インデックスの作成中にきちんと順序付けされたばかりのデータが順序が狂う可能性があり、SQLがそれを効率的に使用する機能に影響を与えます。

したがって、縮小操作を実行するときはいつでも、後続のすべてのクエリのパフォーマンスに影響を与える可能性があります。ただし、縮小後にクラスター化インデックス/主キーを再実行すると、縮小操作中に発生した可能性のある断片化の多くを最適化するのに役立ちます。パフォーマンスが重要であるが、定期的に縮小を実行する必要がある場合、理想的な世界では、縮小操作のたびにインデックスを再実行する必要があります。

于 2013-10-08T15:42:27.987 に答える
0

はい、パフォーマンスに少し影響する可能性があります。データベースが稼働しているときは、ディスクスペースの使用量についてはあまり気にせず、効率的なデータの取得/永続性については気にしません。

于 2009-07-12T12:56:03.073 に答える