Apa perbedaan antara Kecilkan Basis Data dan File?

33
DBCC ShrinkDatabase()
DBCC ShrinkFile()
  1. Apakah saya perlu menjalankan kedua perintah DBCC untuk mengecilkan basis data?
  2. Apa perbedaan antara keduanya di atas?
Paul White mengatakan GoFundMonica
sumber

Jawaban:

36

Secara sederhana...

  • DBCC ShrinkDatabase(): menyusutkan semua file
  • DBCC ShrinkFile(): hanya satu file

Misalnya, Anda mungkin memiliki masalah cadangan log dan itu tumbuh di luar kendali sehingga Anda menjalankan DBCC ShrinkFile().

Anda hampir tidak pernah menggunakannya ShrinkDatabase.

Sebelum Anda mempertimbangkan untuk menggunakan salah satu perintah, silakan baca blog Paul Randal tentang penyusutan .

Saya tidak akan mengecilkan salah satu file (mdf, ldf) kecuali ada alasan yang jelas. File adalah ukuran mereka karena mereka perlu. Setiap blog yang menyarankan untuk melakukannya sebagai bagian dari pemeliharaan rutin mungkin tidak mengerti cara kerja SQL Server.

gbn
sumber
2
Terima kasih sobat. kamu benar. Saya baru saja membaca blog Brent Ozar .. dia benar-benar bersumpah di blognya "Berhenti Menyusut File Database Anda. Serius. Sekarang.".
Dan ketika melakukan hal yang sama, mengapa ada argumen yang berbeda?
Stefan Steinegger
2

Basis data default memiliki dua file

MyDb.MDF dan MyDb.LDF

File MDF adalah file data di mana partisi utama berada. Tergantung pada kebutuhan Anda, Anda dapat mempartisi basis data menjadi beberapa file. Hal ini dilakukan agar data (tabel tunggal atau ganda) dapat menjangkau banyak file yang biasanya diletakkan di hard drive terpisah untuk mencapai kinerja yang lebih tinggi.

Jika Anda mengecilkan basis data, semua file yang terkait dengan basis data itu akan menyusut.

Jika Anda mengecilkan file, maka hanya file yang dipilih yang akan menyusut.

Anda hanya perlu menggunakan perintah Shrink Database. Tetapi biasanya bukan praktik yang baik untuk melakukan ini dan juga bukan praktik yang disarankan.

Jika Anda memberi tahu kami apa masalah yang Anda alami, kami dapat memberi Anda lebih banyak informasi tentang cara mengatasinya.

Raj More
sumber
Oh .. masalah adalah server produksi kami kehabisan ruang disk. Menambahkan lebih banyak disk ideal tetapi saya bertanya-tanya apa lagi yang bisa kita lakukan?
0

Kemungkinan besar kita hanya menggunakan shrinkfile dbcc. sp_helpdb 'databasename' menyediakan daftar data & file log dalam database.

klik kanan pada studio manajemen, tugas-> menyusut-> file memberikan berapa banyak Anda dapat menyusut.

apa pun yang kita menyusut, itu tersedia kembali pada disk sebagai ruang kosong.

mis: gunakan 'databasename' dbcc shrinkfile (fileid, 100)

di sini 100 adalah 100 MB

fileid bisa dapatkan dari sp_helpdb 'databasename'


sumber