web-dev-qa-db-ja.com

Shrink DatabaseとFileの違いは何ですか?

DBCC ShrinkDatabase()
DBCC ShrinkFile()
  1. データベースを圧縮するために、両方のDBCCコマンドを実行する必要がありますか?
  2. 上記の2つの違いは何ですか?
34
Jango

単に...

  • DBCC ShrinkDatabase():すべてのファイルを縮小
  • DBCC ShrinkFile():1つのファイルのみ

たとえば、ログのバックアップに問題があり、制御不能になったため、DBCC ShrinkFile()を実行したとします。

あなたほとんどShrinkDatabaseを使用することはありません。

いずれかのコマンドの使用を検討する前に、 Paul Randalの縮小に関するブログ をお読みください。

明確な理由がない限り、どちらのファイル(mdf、ldf)も縮小しません。彼らはする必要があるので、ファイルは彼らがいるサイズです。定期的なメンテナンスの一環としてそうすることを提案しているブログは、おそらくSQL Serverのしくみを理解していません。

36
gbn

デフォルトのデータベースには2つのファイルがあります

MyDb.MDFおよびMyDb.LDF

MDFファイルは、プライマリパーティションが存在するデータファイルです。必要に応じて、データベースを複数のファイルに分割できます。これは、データ(単一または複数のテーブル)がスパンできるようにするためです。より高いパフォーマンスを達成するために、通常は別々のハードドライブに置かれる複数のファイル。

データベースを縮小すると、そのデータベースに関連付けられているすべてのファイルが縮小されます。

ファイルを圧縮すると、選択したファイルのみが縮小されます。

Shrink Databaseコマンドを使用するだけで済みます。しかし、これを行うのは通常良い習慣ではなく、推奨されるやり方でもありません。

発生している問題を教えていただければ、解決方法の詳細をお知らせします。

2
Raj More

ほとんどの場合、dbcc圧縮ファイルのみを使用します。 sp_helpdb 'databasename'は、データベース内のデータとログファイルのリストを提供します。

mnagementスタジオを右クリックすると、tasks-> shrink-> fileを使用すると、どれだけ縮小できるかがわかります。

縮小しても、空き領域としてディスクに戻すことができます。

例: 'databasename' dbccrinkfile(fileid、100)を使用します

ここで100は100 MBです

fileidはsp_helpdb 'databasename'から取得できます

0
Gigs