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.

Konvensi sintaks transact-SQL

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:

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. TABLOCKDBCC 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 atau NO_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