DBCC (Transact-SQL)
Berlaku untuk:SQL Server Azure SQL DatabaseAzure 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 | Lakukan |
---|---|
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. Rekam jepret 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 WITH TABLOCK
opsi ditentukan.
Rekam jepret database internal tidak dibuat saat perintah DBCC dijalankan:
master
Terhadap database, dan instans SQL Server berjalan dalam mode pengguna tunggal.- Terhadap database selain
master
, tetapi database telah dimasukkan ke dalam mode pengguna tunggal dengan menggunakanALTER DATABASE
pernyataan . - Terhadap database baca-saja.
- Terhadap database yang telah diatur dalam mode darurat dengan menggunakan
ALTER DATABASE
pernyataan . - Terhadap
tempdb
. Dalam hal ini, rekam jepret database tidak dapat dibuat karena pembatasan internal. WITH TABLOCK
Menggunakan opsi . 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 WITH TABLOCK
opsi memerlukan kunci eksklusif database (X
). 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 sys.dm_exec_requests
katalog berisi informasi tentang kemajuan dan fase eksekusi DBCC CHECKDB
perintah , , CHECKFILEGROUP
dan CHECKTABLE
saat ini. Kolom percent_complete
menunjukkan persentase lengkap perintah, dan command
kolom 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 |
---|---|---|
DBCC TABLE CHECK |
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. |
DBCC TABLE REPAIR |
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. |
DBCC ALLOC CHECK |
Struktur alokasi dalam database diperiksa selama fase ini. Catatan: DBCC CHECKALLOC melakukan pemeriksaan yang sama. |
Kemajuan tidak dilaporkan |
DBCC ALLOC REPAIR |
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. |
DBCC SYS CHECK |
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. |
DBCC SYS REPAIR |
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. |
DBCC SSB CHECK |
SQL Server objek Service Broker diperiksa selama fase ini. Catatan: Fase ini tidak dijalankan saat DBCC CHECKTABLE dijalankan. |
Kemajuan tidak dilaporkan. |
DBCC CHECKCATALOG |
Konsistensi katalog database diperiksa selama fase ini. Catatan: Fase ini tidak dijalankan saat DBCC CHECKTABLE dijalankan. |
Kemajuan tidak dilaporkan. |
DBCC IVIEW CHECK |
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) Paket Layanan 2 dan versi yang lebih baru.)