Bagaimana untuk mengecilkan database Code di SQL Server

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 307487 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

Ringkasan

Artikel ini membahas berbagai metode yang dapat Anda gunakan untuk mengecilkan Code database dalam Microsoft SQL Server. Sebelum Anda mengecilkan Code database dengan menggunakan metode yang dijelaskan dalam artikel ini, harap menyadari isu berikut:
  • Ukuran Code reset ke ukuran dikonfigurasi terakhir (maksudnya, ukuran default, atau ukuran terakhir yang ditetapkan dengan menggunakan mengubah database) setelah setiap restart. Oleh karena itu, kecuali jika Anda harus menggunakan nilai yang berbeda atau memperoleh tangguh segera, Anda tidak memiliki untuk menggunakan prosedur yang didokumentasikan di artikel ini. Anda dapat menunggu berikutnya restart layanan SQL Server untuk ukuran menurun. Lebih besar ukuran database Code tidak akan merugikan mempengaruhi kinerja SQL Server.
  • Dalam SQL Server 2005 dan versi yang lebih baru, menyusut Code database tidak berbeda dengan penyusutan basis pengguna kecuali kenyataan bahwa Code me-reset ke ukuran dikonfigurasi setelah setiap restart contoh SQL Server.
  • Hal ini aman untuk menjalankan menyusut Code sementara Code kegiatan sedang berlangsung. Namun, Anda mungkin mengalami kesalahan lain seperti menghalangi, kebuntuan dan sebagainya yang dapat mencegah menyusut dari menyelesaikan. Oleh karena itu, dalam rangka untuk memastikan bahwa menyusut Code akan berhasil, kami sarankan bahwa Anda melakukan ini, sementara server adalah satu-user mode atau ketika kau berhenti semua aktivitas Code.

Code informasi

Database Code adalah kerja sementara. SQL Server menggunakan code untuk melakukan banyak tugas. Antara tugas tersebut adalah sebagai berikut:
  • Penyimpanan Daftar Tabel sementara secara eksplisit dibuat
  • Worktables yang menyimpan hasil antara yang dibuat selama permintaan pengolahan dan menyortir
  • Terwujud statis kursor
  • Penyimpanan Catatan versi ketika tingkat isolasi snapshot atau tingkat isolasi berkomitmen dibaca snapshot yang digunakan
SQL Server catatan hanya cukup informasi dalam log transaksi code untuk memutar kembali transaksi tapi tidak untuk mengulang transaksi selama pemulihan database. Fitur ini meningkatkan kinerja INSERT pernyataan dalam Code. Selain itu, Anda tidak perlu log informasi untuk mengulang transaksi karena code kembali dibuat setiap kali Anda me-restart SQL Server. Oleh karena itu, ada tidak ada transaksi untuk roll ke depan atau memutar kembali. Ketika SQL Server dimulai, code kembali dibuat dengan menggunakan kopi karbon dari model database dan Code reset ke ukuran dikonfigurasi terakhir. Ukuran dikonfigurasi adalah ukuran eksplisit terakhir yang ditetapkan dengan ukuran file yang mengubah operasi seperti Mengubah DATABASE yang menggunakan Memodifikasi FILE pilihan atau pernyataan DBCC SHRINKFILE .

secara asali, database Code dikonfigurasi untuk autogrow yang diperlukan. Oleh karena itu, database ini dapat tiba-tiba tumbuh dalam waktu untuk ukuran yang lebih besar dari ukuran yang diinginkan. Restart sederhana SQL Server me-reset ukuran Code untuk ukurannya dikonfigurasi terakhir.

Dalam SQL Server 2005 dan versi yang lebih baru, Anda dapat menggunakan salah satu metode berikut untuk mengubah ukuran Code.

Perkecil tabel iniPerbesar tabel ini
MetodeMemerlukan restart?Informasi selengkapnya
MENGUBAH DATABASEYaMemberikan lengkap kontrol pada ukuran default Code file (tempdev dan templog).
DBCC SHRINKDATABASETidakBeroperasi pada tingkat database.
DBCC SHRINKFILETidakMemungkinkan Anda untuk mengecilkan file individu.
SQL Server Management StudioTidakIni pada dasarnya adalah cara untuk mengecilkan database file melalui GUI.

Catatan: SQL Server Management Studio SQL Server 2005 tidak menunjukkan ukuran benar code file setelah operasi menyusut. Nilai "Sedang mengalokasikan ruang" selalu menarik dari sys.master_files DMV, dan nilai ini tidak diperbarui setelah operasi menyusut terjadi untuk Code database. Untuk menemukan ukuran benar code file setelah operasi menyusut, mengeksekusi pernyataan berikut dalam SQL Server Management Studio:

use tempdb

select (size*8) as FileSizeKB from sys.database_files
Tiga metode pertama dibahas di sini.

Catatan: Untuk instalasi SQL Server 2000, Anda akan memiliki untuk menggunakan Query Analyzer bukan SQL Server Management Studio. Juga, perintah DBCC akan meminta Anda untuk menempatkan database dalam satu-user mode.

Anda dapat menggunakan tiga metode berikut untuk mengecilkan Code untuk ukuran yang lebih kecil daripada ukuran dikonfigurasi.

Metode 1: Gunakan Transact-SQL perintah

Metode 2: Gunakan perintah DBCC SHRINKDATABASE

Metode 3: Gunakan perintah DBCC SHRINKFILE

kesalahan 2501 dan 8909 ketika Anda menjalankan operasi menyusut

Jika Code yang digunakan, dan jika Anda mencoba untuk mengecilkan dengan menggunakan DBCC SHRINKDATABASE atau DBCC SHRINKFILE perintah, Anda mungkin menerima pesan yang menyerupai berikut ini, tergantung pada versi SQL Server yang Anda gunakan:

SQL Server 2005 dan versi

Server: Msg 8909, tingkat 16, negara bagian 1, baris 1 tabel atak kesalahan: ID objek 0, indeks ID -1, partisi ID 0, ID unit alloc 0 (ketik diketahui), halaman ID (6:8040) berisi ID halaman salah dalam hulu halaman. PageId di hulu halaman = (0:0).

SQL Server 2000
Server: Msg 2501, tingkat 16, negara bagian 1, baris 1 bisa tidak menemukan Daftar Tabel yang bernama '1525580473'. Periksa sysobjects.

Server: Msg 8909, tingkat 16, negara bagian 1, baris 0 Daftar Tabel korupsi: ID objek 1, indeks ID 0, halaman ID % S_PGID. PageId di hulu halaman = % S_PGID.



Catatan
  • Kesalahan ini tidak menunjukkan korupsi di Code nyata. Namun, perlu diketahui bahwa mungkin ada alasan lain untuk kesalahan korupsi data secara fisik seperti kesalahan 8909 dan bahwa alasan termasuk I/O subsistem masalah. Oleh karena itu, jika kesalahan terjadi di luar menyusut operasi, Anda harus melakukan lebih investigasi.
  • Dalam SQL Server 2005 dan versi yang lebih baru, meskipun 8909 pesan akan dikembalikan ke aplikasi atau untuk pengguna yang mengeksekusi menyusut operasi, operasi menyusut tidak akan gagal.
  • Dalam SQL Server 2000 dan versi sebelumnya, kesalahan ini akan menyebabkan menyusut operasi gagal. Oleh karena itu untuk mengecilkan Code database, Anda harus me-restart Server SQL untuk menciptakan kembali Code. Untuk informasi lebih lanjut, klik nomor artikel berikut ini untuk melihat artikel di dalam Microsoft Knowledge Base:
    277848 Pesan galat "Tabel korup objek ID 0, indeks ID 0, halaman ID" terjadi ketika Anda menjalankan DBCC DBREINDEX di SQL Server


Referensi

Mengecilkan Database

Properti

ID Artikel: 307487 - Kajian Terakhir: 30 April 2014 - Revisi: 5.1
Berlaku bagi:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Parallel Data Warehouse
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Parallel Data Warehouse
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
Kata kunci: 
kbsqlsetup kbhowtomaster kbmt KB307487 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan oleh perangkat lunak penerjemahan mesin Microsoft, dan mungkin telah diedit oleh Masyarakat Microsoft melalui teknologi CTF dan bukan oleh seorang penerjemah profesional. Microsoft menawarkan baik artikel yang diterjemahkan oleh manusia maupun artikel hasil editan terjemahan oleh mesin/komunitas, sehingga Anda dapat mengakses semua artikel di Sentra Pengetahuan yang kami miliki dalam berbagai bahasa. Namun artikel hasil editan mesin atau bahkan komunitas tidak selalu sempurna. Artikel ini dapat mengandung kesalahan dalam hal kosa kata, sintaksis atau tatabahasa, sangat mirip dengan penutur asing yang membuat kekeliruan ketika berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab atas ketidakakuratan, kesalahan atau kerugian apa pun akibat dari kekeliruan dalam penerjemahan isi atau penggunaannya oleh pelanggan kami. Microsoft juga akan senantiasa memperbarui perangkat lunak penerjemahan mesin dan alat untuk menyempurnakan Editan Hasil Penerjemahan Mesin.
Klik disini untuk melihat versi Inggris dari artikel ini: 307487

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com