Bagikan melalui


Menyusutkan Database

Topik ini menjelaskan cara menyusutkan database dengan menggunakan Objek di SQL Server 2014 dengan menggunakan SQL Server Management Studio atau Transact-SQL.

Menyusutkan file data memulihkan ruang dengan memindahkan halaman data dari akhir file ke ruang yang tidak ditempati lebih dekat ke bagian depan file. Ketika ruang kosong yang cukup dibuat di akhir file, halaman data di akhir file dapat dibatalkan alokasinya dan dikembalikan ke sistem file.

Sebelum Anda mulai

Batasan dan Pembatasan

  • Database tidak dapat dibuat lebih kecil dari ukuran minimum database. Ukuran minimum adalah ukuran yang ditentukan ketika database awalnya dibuat, atau ukuran eksplisit terakhir yang ditetapkan dengan menggunakan operasi pengubahan ukuran file, seperti DBCC SHRINKFILE. Misalnya, jika database awalnya dibuat dengan ukuran 10 MB dan tumbuh menjadi 100 MB, ukuran terkecil database dapat dikurangi menjadi 10 MB, bahkan jika semua data dalam database telah dihapus.

  • Anda tidak dapat menyusutkan database saat database sedang dicadangkan. Sebaliknya, Anda tidak dapat mencadangkan database saat operasi penyusutan pada database sedang dalam proses.

  • DBCC SHRINKDATABASE akan gagal ketika menemukan indeks penyimpan kolom yang dioptimalkan memori xVelocity. Pekerjaan selesai sebelum menemukan indeks penyimpan kolom akan berhasil sehingga database mungkin lebih kecil. Untuk menyelesaikan DBCC SHRINKDATABASE, nonaktifkan semua indeks penyimpan kolom sebelum menjalankan DBCC SHRINKDATABASE, lalu bangun kembali indeks penyimpan kolom.

Rekomendasi

  • Untuk melihat jumlah ruang bebas saat ini (tidak dialokasikan) dalam database. Untuk informasi selengkapnya, lihat Menampilkan Data dan Informasi Ruang Log untuk Database

  • Pertimbangkan informasi berikut saat Anda berencana untuk menyusutkan database:

    • Operasi penyusutan paling efektif setelah operasi yang membuat banyak ruang yang tidak digunakan, seperti tabel terpotok atau operasi hilangkan tabel.

    • Sebagian besar database memerlukan ketersediaan ruang kosong untuk operasi rutin sehari-hari. Jika Anda menyusutkan database berulang kali dan melihat bahwa ukuran database tumbuh lagi, ini menunjukkan bahwa ruang yang disusutkan diperlukan untuk operasi reguler. Dalam kasus ini, berulang kali menyusutkan database adalah operasi yang terbuang sia-sia.

    • Operasi penyusutan tidak mempertahankan status fragmentasi indeks dalam database, dan umumnya meningkatkan fragmentasi ke derajat. Ini adalah alasan lain untuk tidak menyusutkan database berulang kali.

    • Kecuali Anda memiliki persyaratan tertentu, jangan atur opsi AUTO_SHRINK database ke AKTIF.

Keamanan

Izin

Memerlukan keanggotaan dalam peran server tetap sysadmin atau peran database tetap db_owner .

Menggunakan SQL Server Management Studio

Untuk menyusutkan database

  1. Di Object Explorer, sambungkan ke instans mesin database SQL Server, lalu perluas instans tersebut.

  2. Perluas Database, lalu klik kanan database yang ingin Anda susutkan.

  3. Arahkan ke Tugas, arahkan ke Susutkan, lalu klik Database.

    Database
    Menampilkan nama database terpilih.

    Ruang yang dialokasikan saat ini
    Menampilkan total ruang yang digunakan dan tidak digunakan untuk database terpilih.

    Ruang kosong yang tersedia
    Menampilkan jumlah ruang kosong dalam file log dan data dari database yang dipilih.

    Mengatur ulang file sebelum melepaskan ruang yang tidak digunakan
    Memilih opsi ini setara dengan menjalankan DBCC SHRINKDATABASE yang menentukan opsi persentase target. Menghapus opsi ini setara dengan menjalankan opsi DBCC SHRINKDATABASE dengan TRUNCATEONLY. Secara default, opsi ini tidak dipilih saat dialog dibuka. Jika opsi ini dipilih, pengguna harus menentukan opsi persentase target.

    Ruang kosong maksimum dalam file setelah menyusut
    Masukkan persentase maksimum ruang kosong yang akan ditinggalkan dalam file database setelah database disusutkan. Nilai yang diizinkan adalah antara 0 dan 99.

  4. Klik OK.

Menggunakan T-SQL

Untuk menyusutkan database

  1. Sambungkan ke Mesin Database.

  2. Dari bilah Standar, klik Kueri Baru.

  3. Salin dan tempel contoh berikut ke dalam jendela kueri dan klik Jalankan. Contoh ini menggunakan DBCC SHRINKDATABASE untuk mengurangi ukuran data dan file log dalam UserDB database dan untuk 10 memungkinkan persen ruang kosong dalam database.

DBCC SHRINKDATABASE (UserDB, 10);
GO

Tindak Lanjut: Setelah Anda menyusutkan database

Data yang dipindahkan untuk menyusutkan file dapat tersebar ke lokasi yang tersedia dalam file. Hal ini menyebabkan fragmentasi indeks dan dapat memperlambat performa kueri yang mencari rentang indeks. Untuk menghilangkan fragmentasi, pertimbangkan untuk membangun kembali indeks pada file setelah menyusut.

Lihat juga

Menyusutkan File
sys.databases (T-SQL)
sys.database_files (Transact-SQL)
DBCC (Transact-SQL)
DBCC SHRINKFILE (Transact-SQL)
File Database dan Grup File