DBCC CHECKFILEGROUP (Transact-SQL)
Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
Memeriksa alokasi dan integritas struktural semua tabel dan tampilan terindeks dalam grup file yang ditentukan dari database saat ini.
Sintaks
DBCC CHECKFILEGROUP
[
[ ( { filegroup_name | filegroup_id | 0 }
[ , NOINDEX ]
) ]
[ WITH
{
[ ALL_ERRORMSGS | NO_INFOMSGS ]
[ , TABLOCK ]
[ , ESTIMATEONLY ]
[ , PHYSICAL_ONLY ]
[ , MAXDOP = number_of_processors ]
}
]
]
Catatan
Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.
Argumen
filegroup_name
Nama grup file dalam database saat ini untuk memeriksa alokasi tabel dan integritas struktural. Jika tidak ditentukan, atau jika 0 ditentukan, defaultnya adalah grup file utama. Nama grup file harus mematuhi aturan untuk pengidentifikasi.
filegroup_name tidak dapat menjadi grup file FILESTREAM.
filegroup_id
Nomor identifikasi grup file (ID) dalam database saat ini untuk memeriksa alokasi tabel dan integritas struktural.
NOINDEX
Menentukan bahwa pemeriksaan intensif indeks non-kluster untuk tabel pengguna tidak boleh dilakukan. Ini mengurangi waktu eksekusi keseluruhan. NOINDEX
tidak memengaruhi tabel sistem karena DBCC CHECKFILEGROUP
selalu memeriksa semua indeks tabel sistem.
ALL_ERRORMSGS
Menampilkan jumlah kesalahan per objek yang tidak terbatas. Semua pesan kesalahan ditampilkan secara default. Menentukan atau menghilangkan opsi ini tidak berpengaruh.
NO_INFOMSGS
Menekan semua pesan informasi.
TABLOCK
DBCC CHECKFILEGROUP
Penyebab untuk mendapatkan kunci alih-alih menggunakan rekam jepret database internal.
PERKIRAKAN SAJA
Menampilkan perkiraan jumlah tempdb
ruang yang diperlukan untuk dijalankan DBCC CHECKFILEGROUP
dengan semua opsi lain yang ditentukan.
PHYSICAL_ONLY
Membatasi pemeriksaan ke integritas struktur fisik halaman, header rekaman, dan struktur fisik pohon B. Dirancang untuk memberikan pemeriksaan overhead kecil dari konsistensi fisik grup file, pemeriksaan ini juga dapat mendeteksi halaman robek, dan kegagalan perangkat keras umum yang dapat membahayakan data. Eksekusi DBCC CHECKFILEGROUP
penuh mungkin memakan waktu jauh lebih lama daripada pada versi sebelumnya. Perilaku ini terjadi karena alasan berikut:
- Pemeriksaan logis lebih komprehensif.
- Beberapa struktur yang mendasar untuk diperiksa lebih kompleks.
- Banyak pemeriksaan baru telah diperkenalkan untuk menyertakan fitur baru.
Catatan
Dokumentasi SQL Server menggunakan istilah pohon B umumnya dalam referensi ke indeks. Dalam indeks rowstore, SQL Server mengimplementasikan pohon B+. Ini tidak berlaku untuk indeks penyimpan kolom atau penyimpanan data dalam memori. Untuk informasi selengkapnya, lihat panduan arsitektur dan desain indeks SQL Server dan Azure SQL.
Oleh karena itu, menggunakan opsi dapat PHYSICAL_ONLY
menyebabkan run-time yang jauh lebih singkat untuk DBCC CHECKFILEGROUP
pada grup file besar dan oleh karena itu disarankan untuk sering digunakan pada sistem produksi. Kami masih menyarankan agar eksekusi DBCC CHECKFILEGROUP
penuh dilakukan secara berkala. Frekuensi eksekusi ini tergantung pada faktor-faktor khusus untuk bisnis individu dan lingkungan produksi. PHYSICAL_ONLY
selalu menyiratkan NO_INFOMSGS
dan tidak diizinkan dengan salah satu opsi perbaikan.
Catatan
Menentukan PHYSICAL_ONLY
penyebab DBCC CHECKFILEGROUP
untuk melewati semua pemeriksaan data FILESTREAM.
MAXDOP
Berlaku untuk: SQL Server 2014 Service Pack 2 dan versi yang lebih baru
Mengambil alih tingkat maksimum opsi sp_configure
konfigurasi paralelisme untuk pernyataan tersebut. MAXDOP
dapat melebihi nilai yang dikonfigurasi dengan sp_configure
. Jika MAXDOP
melebihi nilai yang dikonfigurasi dengan Resource Governor, Mesin Database menggunakan nilai Resource Governor MAXDOP
, yang dijelaskan dalam ALTER WORKLOAD GROUP (Transact-SQL). Semua aturan semantik yang digunakan dengan tingkat maksimum opsi konfigurasi paralelisme berlaku saat Anda menggunakan MAXDOP
petunjuk kueri. Untuk informasi selengkapnya, lihat Mengonfigurasi tingkat maksimum Opsi Konfigurasi Server paralelisme.
Perhatian
Jika MAXDOP
diatur ke nol maka server memilih tingkat paralelisme maksimum.
Keterangan
DBCC CHECKFILEGROUP
dan DBCC CHECKDB
merupakan perintah DBCC serupa. Perbedaan utamanya adalah bahwa DBCC CHECKFILEGROUP
terbatas pada grup file yang ditentukan tunggal dan tabel yang diperlukan.
DBCC CHECKFILEGROUP
melakukan perintah berikut:
- DBCC CHECKALLOC dari grup file.
- DBCC CHECKTABLE dari setiap tabel dan tampilan terindeks dalam grup file.
Menjalankan DBCC CHECKALLOC
atau DBCC CHECKTABLE
terpisah dari DBCC CHECKFILEGROUP
tidak diperlukan.
Rekam jepret database internal
DBCC CHECKFILEGROUP
menggunakan rekam jepret database internal untuk memberikan konsistensi transaksi yang harus dilakukannya. Untuk informasi selengkapnya, lihat Melihat Ukuran File Sparse rekam jepret Database (Transact-SQL) dan bagian penggunaan rekam jepret database internal DBCC di DBCC (Transact-SQL).
Jika rekam jepret tidak dapat dibuat, atau TABLOCK
opsi ditentukan, DBCC CHECKFILEGROUP
memperoleh kunci untuk mendapatkan konsistensi yang diperlukan. Dalam hal ini, kunci database eksklusif diperlukan untuk melakukan pemeriksaan alokasi, dan kunci tabel bersama diperlukan untuk melakukan pemeriksaan tabel. TABLOCK
DBCC CHECKFILEGROUP
menyebabkan berjalan lebih cepat pada database di bawah beban berat, tetapi mengurangi konkurensi yang tersedia pada database saat DBCC CHECKFILEGROUP
sedang berjalan.
Catatan
tempdb
Menjalankan DBCC CHECKFILEGROUP
terhadap tidak melakukan pemeriksaan alokasi apa pun dan harus memperoleh kunci tabel bersama untuk melakukan pemeriksaan tabel. Ini karena, karena alasan performa, rekam jepret database tidak tersedia di tempdb
. Ini berarti bahwa konsistensi transaksi yang diperlukan tidak dapat diperoleh.
Periksa objek secara paralel
Secara default, DBCC CHECKFILEGROUP
melakukan pemeriksaan paralel objek. Tingkat paralelisme secara otomatis ditentukan oleh prosesor kueri. Tingkat paralelisme maksimum dikonfigurasi sama seperti kueri paralel. Untuk membatasi jumlah maksimum prosesor yang tersedia untuk pemeriksaan DBCC, gunakan sp_configure. Untuk informasi selengkapnya, lihat Mengonfigurasi tingkat maksimum Opsi Konfigurasi Server paralelisme.
Pemeriksaan paralel dapat dinonaktifkan dengan menggunakan Bendera Pelacakan 2528. Untuk informasi selengkapnya, lihat Bendera Pelacakan (Transact-SQL).
Indeks nonclustered pada grup file terpisah
Jika indeks non-kluster dalam grup file yang ditentukan dikaitkan dengan tabel di grup file lain, indeks tidak dicentang karena tabel dasar tidak tersedia untuk validasi.
Jika tabel dalam grup file yang ditentukan memiliki indeks non-kluster di grup file lain, indeks non-kluster tidak dicentang karena hal berikut:
- Struktur tabel dasar tidak bergantung pada struktur indeks non-kluster. Indeks yang tidak di-noncluster tidak harus dipindai untuk memvalidasi tabel dasar.
- Perintah
DBCC CHECKFILEGROUP
memvalidasi objek hanya dalam grup file yang ditentukan.
Indeks berkluster dan tabel tidak dapat berada di grup file yang berbeda; oleh karena itu, pertimbangan sebelumnya hanya berlaku untuk indeks nonclustered.
Tabel yang dipartisi pada grup file terpisah
Ketika tabel yang dipartisi ada pada beberapa grup file, DBCC CHECKFILEGROUP
periksa kumpulan baris partisi yang ada pada grup file yang ditentukan dan mengabaikan set baris di grup file lainnya. Pesan informasi 2594 menunjukkan partisi yang tidak diperiksa. Indeks non-kluster yang tidak berada di grup file yang ditentukan, tidak diperiksa.
Memahami pesan kesalahan DBCC
DBCC CHECKFILEGROUP
Setelah perintah selesai, pesan ditulis ke log kesalahan SQL Server. Jika perintah DBCC berhasil dijalankan, pesan menunjukkan keberhasilan penyelesaian, dan jumlah waktu yang dijalankan perintah. Jika perintah DBCC berhenti sebelum menyelesaikan pemeriksaan karena kesalahan, pesan menunjukkan perintah dihentikan, nilai status, dan jumlah waktu perintah dijalankan. Tabel berikut ini mencantumkan dan menjelaskan nilai status yang bisa disertakan dalam pesan.
Provinsi | Deskripsi |
---|---|
0 | Nomor kesalahan 8930 dimunculkan. Ini menunjukkan kerusakan metadata yang menyebabkan perintah DBCC dihentikan. |
1 | Nomor kesalahan 8967 dimunculkan. Terjadi kesalahan DBCC internal. |
2 | Kegagalan terjadi selama perbaikan database mode darurat. |
3 | Ini menunjukkan kerusakan metadata yang menyebabkan perintah DBCC dihentikan. |
4 | Pernyataan atau pelanggaran akses terdeteksi. |
5 | Terjadi kesalahan yang tidak diketahui yang menghentikan perintah DBCC. |
Pelaporan kesalahan
File cadangan mini (SQLDUMP<nnnn>.txt
) dibuat di direktori SQL Server LOG
setiap kali DBCC CHECKFILEGROUP
mendeteksi kesalahan kerusakan. Ketika fitur pengumpulan data Penggunaan Fitur dan Pelaporan Kesalahan diaktifkan untuk instans SQL Server, file secara otomatis diteruskan ke Microsoft. Data yang dikumpulkan digunakan untuk meningkatkan fungsionalitas SQL Server.
File cadangan berisi hasil DBCC CHECKFILEGROUP
perintah dan output diagnostik tambahan. File telah membatasi daftar kontrol akses diskresi (DACL). Akses terbatas pada akun layanan SQL Server dan anggota peran sysadmin . Secara default, peran sysadmin berisi semua anggota grup Windows BUILTIN\Administrators dan grup administrator lokal. Perintah DBCC tidak gagal jika proses pengumpulan data gagal.
Mengatasi kesalahan
Jika ada kesalahan yang dilaporkan oleh DBCC CHECKFILEGROUP
, kami sarankan memulihkan database dari cadangan database. Opsi perbaikan tidak dapat ditentukan ke DBCC CHECKFILEGROUP
.
Jika tidak ada cadangan, menjalankan DBCC CHECKDB
dengan opsi perbaikan yang ditentukan akan memperbaiki kesalahan yang dilaporkan. Opsi perbaikan yang akan digunakan ditentukan di akhir daftar jika dilaporkan kesalahan. Mengoreksi kesalahan dengan menggunakan opsi REPAIR_ALLOW_DATA_LOSS mungkin mengharuskan beberapa halaman, dan oleh karena itu data, dihapus.
Tataan hasil
DBCC CHECKFILEGROUP
mengembalikan tataan hasil berikut (nilai dapat bervariasi):
- Kecuali jika
ESTIMATEONLY
atauNO_INFOMSGS
ditentukan. - Untuk database saat ini, jika tidak ada database yang ditentukan, apakah opsi apa pun (kecuali
NOINDEX
) ditentukan atau tidak.
DBCC results for 'master'.
DBCC results for 'sys.sysrowsetcolumns'.
There are 630 rows in 7 pages for object 'sys.sysrowsetcolumns'.
DBCC results for 'sys.sysrowsets'.
There are 97 rows in 1 pages for object 'sys.sysrowsets'.
DBCC results for 'sysallocunits'.
There are 195 rows in 3 pages for object 'sysallocunits'.
There are 2340 rows in 16 pages for object 'spt_values'.
DBCC results for 'MSreplication_options'.
There are 2 rows in 1 pages for object 'MSreplication_options'.
CHECKFILEGROUP found 0 allocation errors and 0 consistency errors in database 'master'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Jika NO_INFOMSGS
ditentukan, DBCC CHECKFILEGROUP
mengembalikan:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Jika ESTIMATEONLY
ditentukan, DBCC CHECKFILEGROUP
mengembalikan (nilai dapat bervariasi):
Estimated TEMPDB space needed for CHECKALLOC (KB)
-------------------------------------------------
15
(1 row(s) affected)
Estimated TEMPDB space needed for CHECKTABLES (KB)
--------------------------------------------------
207
(1 row(s) affected)
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Izin
Memerlukan keanggotaan dalam peran server tetap sysadmin atau peran database tetap db_owner .
Contoh
J. Periksa grup file PRIMER dalam database
Contoh berikut memeriksa grup file utama database saat ini.
DBCC CHECKFILEGROUP;
GO
B. Periksa grup file AdventureWorks PRIMARY tanpa indeks non-kluster
Contoh berikut memeriksa AdventureWorks2022
grup file utama database (tidak termasuk indeks non-kluster) dengan menentukan nomor identifikasi grup file utama, dan dengan menentukan NOINDEX
.
USE AdventureWorks2022;
GO
DBCC CHECKFILEGROUP (1, NOINDEX);
GO
C. Periksa grup file PRIMER dengan opsi
Contoh berikut memeriksa master
grup file utama database dan menentukan opsi ESTIMATEONLY
.
USE master;
GO
DBCC CHECKFILEGROUP (1)
WITH ESTIMATEONLY;
Baca juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk