DBCC (Transact-SQL)
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Bahasa pemrograman Transact-SQL menyediakan pernyataan DBCC yang bertindak sebagai Perintah Konsol Database untuk SQL Server.
Pernyataan Perintah Konsol Database dikelompokkan ke dalam kategori berikut.
| Kategori perintah | Melakukan |
|---|---|
| Pemeliharaan | Tugas pemeliharaan pada database, indeks, atau grup file. |
| Lain-lain | Tugas lain-lain seperti mengaktifkan bendera pelacakan atau menghapus DLL dari memori. |
| Informasi | Tugas yang mengumpulkan dan menampilkan berbagai jenis informasi. |
| Validasi | Operasi validasi pada database, tabel, indeks, katalog, grup file, atau alokasi halaman database. |
Perintah DBCC mengambil parameter input dan mengembalikan nilai. Semua parameter perintah DBCC dapat menerima literal Unicode dan DBCS.
Penggunaan Rekam Jepret Database Internal DBCC
Perintah DBCC berikut beroperasi pada rekam jepret database baca-saja internal yang dibuat Mesin Database. Ini mencegah masalah pemblokiran dan konkurensi ketika perintah ini dijalankan. Untuk informasi selengkapnya, lihat Rekam Jepret Database (SQL Server).
- DBCC CHECKALLOC
- DBCC CHECKCATALOG
- DBCC CHECKDB
- DBCC CHECKFILEGROUP
- DBCC CHECKTABLE
Saat Anda menjalankan salah satu perintah DBCC ini, Mesin Database membuat rekam jepret database dan membawanya ke status konsisten secara transaksional. Perintah DBCC kemudian menjalankan pemeriksaan terhadap rekam jepret ini. Setelah perintah DBCC selesai, rekam jepret ini dihilangkan.
Terkadang rekam jepret database internal tidak diperlukan atau tidak dapat dibuat. Ketika ini terjadi, perintah DBCC dijalankan terhadap database aktual. Jika database online, perintah DBCC menggunakan penguncian tabel untuk memastikan konsistensi objek yang diperiksa. Perilaku ini sama seperti jika opsi WITH TABLOCK ditentukan.
Rekam jepret database internal tidak dibuat saat perintah DBCC dijalankan:
- Terhadap master, dan instans SQL Server berjalan dalam mode pengguna tunggal.
- Terhadap database selain master, tetapi database telah dimasukkan ke dalam mode pengguna tunggal dengan menggunakan pernyataan ALTER DATABASE.
- Terhadap database baca-saja.
- Terhadap database yang telah diatur dalam mode darurat dengan menggunakan pernyataan ALTER DATABASE.
- Melawan tempdb. Dalam hal ini, rekam jepret database tidak dapat dibuat karena pembatasan internal.
- Menggunakan opsi WITH TABLOCK. Dalam hal ini, DBCC mematuhi permintaan dengan tidak membuat rekam jepret database.
Perintah DBCC menggunakan kunci tabel alih-alih rekam jepret database internal saat perintah dijalankan terhadap yang berikut ini:
- Grup file baca-saja
- Sistem file FAT
- Volume yang tidak mendukung 'aliran bernama'
- Volume yang tidak mendukung 'aliran alternatif'
Catatan
Mencoba menjalankan DBCC CHECKALLOC, atau bagian yang setara dari DBCC CHECKDB, dengan menggunakan opsi WITH TABLOCK memerlukan kunci X database. Kunci database ini tidak dapat diatur pada tempdb atau master dan mungkin akan gagal pada semua database lainnya.
Catatan
DBCC CHECKDB gagal ketika dijalankan terhadap master jika rekam jepret database internal tidak dapat dibuat.
Pelaporan Kemajuan untuk Perintah DBCC
Tampilan katalog sys.dm_exec_requests berisi informasi tentang kemajuan dan fase eksekusi perintah DBCC CHECKDB, CHECKFILEGROUP, dan CHECKTABLE saat ini. Kolom percent_complete menunjukkan persentase lengkap perintah, dan kolom perintah melaporkan fase eksekusi perintah saat ini.
Definisi unit kemajuan tergantung pada fase eksekusi perintah DBCC saat ini. Terkadang kemajuan dilaporkan pada granularitas halaman database, dalam fase lain dilaporkan pada granularitas database tunggal atau perbaikan alokasi. Tabel berikut menjelaskan setiap fase eksekusi, dan granularitas di mana perintah melaporkan kemajuan.
| Fase Eksekusi | Deskripsi | Granularitas pelaporan kemajuan |
|---|---|---|
| PEMERIKSAAN TABEL DBCC | Konsistensi logis dan fisik objek dalam database diperiksa selama fase ini. | Kemajuan yang dilaporkan di tingkat halaman database. Nilai pelaporan kemajuan diperbarui untuk setiap 1000 halaman database yang diperiksa. |
| PERBAIKAN TABEL DBCC | Perbaikan database dilakukan selama fase ini jika REPAIR_FAST, REPAIR_REBUILD, atau REPAIR_ALLOW_DATA_LOSS ditentukan, dan ada kesalahan objek yang harus diperbaiki. | Kemajuan dilaporkan pada tingkat perbaikan individu. Penghitung diperbarui untuk setiap perbaikan yang selesai. |
| PEMERIKSAAN ALOKASI DBCC | Struktur alokasi dalam database diperiksa selama fase ini. Catatan: DBCC CHECKALLOC melakukan pemeriksaan yang sama. |
Kemajuan tidak dilaporkan |
| PERBAIKAN ALOKASI DBCC | Perbaikan database dilakukan selama fase ini jika REPAIR_FAST, REPAIR_REBUILD, atau REPAIR_ALLOW_DATA_LOSS ditentukan, dan ada kesalahan alokasi yang harus diperbaiki. | Kemajuan tidak dilaporkan. |
| PEMERIKSAAN DBCC SYS | Tabel sistem database diperiksa selama fase ini. | Kemajuan yang dilaporkan di tingkat halaman database. Nilai pelaporan kemajuan diperbarui untuk setiap 1000 halaman database yang diperiksa. |
| PERBAIKAN DBCC SYS | Perbaikan database dilakukan selama fase ini jika REPAIR_FAST, REPAIR_REBUILD, atau REPAIR_ALLOW_DATA_LOSS ditentukan, dan ada kesalahan tabel sistem yang harus diperbaiki. | Kemajuan dilaporkan pada tingkat perbaikan individu. Penghitung diperbarui untuk setiap perbaikan yang selesai. |
| PEMERIKSAAN DBCC SSB | Objek SQL Server Service Broker diperiksa selama fase ini. Catatan: Fase ini tidak dijalankan ketika DBCC CHECKTABLE dijalankan. |
Kemajuan tidak dilaporkan. |
| DBCC CHECKCATALOG | Konsistensi katalog database diperiksa selama fase ini. Catatan: Fase ini tidak dijalankan ketika DBCC CHECKTABLE dijalankan. |
Kemajuan tidak dilaporkan. |
| PEMERIKSAAN IVIEW DBCC | Konsistensi logis dari setiap tampilan terindeks yang ada dalam database diperiksa selama fase ini. | Kemajuan yang dilaporkan pada tingkat tampilan database individual yang sedang diperiksa. |
Pernyataan Informasi
- DBCC INPUTBUFFER
- DBCC SHOWCONTIG
- DBCC OPENTRAN
- DBCC OUTPUTBUFFER
- DBCC PROCCACHE
- DBCC SHOW_STATISTICS
- DBCC SQLPERF
- DBCC TRACESTATUS
- DBCC USEROPTIONS
Pernyataan Validasi
- DBCC CHECKALLOC
- DBCC CHECKCATALOG
- DBCC CHECKCONSTRAINTS
- DBCC CHECKDB
- DBCC CHECKFILEGROUP
- DBCC CHECKIDENT
- DBCC CHECKTABLE
Pernyataan Pemeliharaan
- DBCC CLEANTABLE
- DBCC DBREINDEX
- DBCC DROPCLEANBUFFERS
- DBCC FREEPROCCACHE
- DBCC INDEXDEFRAG
- DBCC SHRINKDATABASE
- DBCC SHRINKFILE
- DBCC UPDATEUSAGE
Pernyataan Lain-lain
- DBCC dllname (GRATIS)
- BANTUAN DBCC
- DBCC FLUSHAUTHCACHE
- DBCC TRACEOFF
- DBCC FREESESSIONCACHE
- DBCC TRACEON
- DBCC FREESYSTEMCACHE
- DBCC CLONEDATABASE
Berlaku untuk: SQL Server 2014 (12.x) SP2 dan yang lebih baru.