Bagikan melalui


DBCC UPDATEUSAGE (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceDatabase SQL di Microsoft Fabric

Melaporkan dan memperbaiki ketidakakuratan jumlah halaman dan baris dalam tampilan katalog. Ketidakakuratan ini dapat menyebabkan laporan penggunaan ruang yang salah yang dikembalikan oleh prosedur tersimpan sp_spaceused sistem.

Konvensi sintaks transact-SQL

Sintaks

DBCC UPDATEUSAGE
(   { database_name | database_id | 0 }
    [ , { table_name | table_id | view_name | view_id }
    [ , { index_name | index_id } ] ]
) [ WITH [ NO_INFOMSGS ] [ , ] [ COUNT_ROWS ] ]

Argumen

| database_name database_id | 0

Nama atau ID database untuk melaporkan dan memperbaiki statistik penggunaan ruang. Jika 0 ditentukan, database saat ini digunakan. Nama database harus mematuhi aturan untuk pengidentifikasi.

| |

Nama atau ID tabel atau tampilan terindeks untuk melaporkan dan memperbaiki statistik penggunaan ruang. Nama tabel dan tampilan harus mematuhi aturan untuk pengidentifikasi.

| index_id index_name

ID atau nama indeks yang akan digunakan. Jika tidak ditentukan, pernyataan memproses semua indeks untuk tabel atau tampilan yang ditentukan.

WITH

Memungkinkan opsi ditentukan.

NO_INFOMSGS

Menekan semua pesan informasi.

COUNT_ROWS

Menentukan bahwa kolom jumlah baris diperbarui dengan jumlah baris saat ini dalam tabel atau tampilan.

Keterangan

DBCC UPDATEUSAGE mengoreksi baris, halaman yang digunakan, halaman yang dipesan, halaman daun, dan jumlah halaman data untuk setiap partisi dalam tabel atau indeks. Jika tidak ada ketidakakuratan dalam tabel sistem, DBCC UPDATEUSAGE tidak mengembalikan data. Jika ketidakakuratan ditemukan dan dikoreksi dan WITH NO_INFOMSGS tidak digunakan, DBCC UPDATEUSAGE mengembalikan baris dan kolom yang sedang diperbarui dalam tabel sistem.

DBCC CHECKDB telah ditingkatkan untuk mendeteksi kapan jumlah halaman atau baris menjadi negatif. Saat terdeteksi, DBCC CHECKDB output berisi peringatan dan rekomendasi untuk dijalankan DBCC UPDATEUSAGE untuk mengatasi masalah tersebut.

Praktik terbaik

Kami merekomendasikan hal-hal berikut:

  • Jangan berjalan DBCC UPDATEUSAGE secara rutin, karena SQL Server mempertahankan metadata dalam sebagian besar keadaan. DBCC UPDATEUSAGE harus dijalankan sesuai kebutuhan, misalnya, ketika Anda mencurigai nilai yang salah dikembalikan oleh sp_spaceused. DBCC UPDATEUSAGE dapat memakan waktu untuk berjalan pada tabel atau database besar.
  • Pertimbangkan untuk berjalan DBCC UPDATEUSAGE secara rutin (misalnya, mingguan) hanya jika database mengalami modifikasi Data Definition Language (DDL) yang sering, seperti pernyataan CREATE, ALTER, atau DROP.

Tataan hasil

DBCC UPDATEUSAGE returns (nilai dapat bervariasi):

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. Memperbarui jumlah halaman atau baris atau keduanya untuk semua objek dalam database saat ini

Contoh berikut menentukan 0 nama database dan DBCC UPDATEUSAGE laporan informasi jumlah baris atau halaman yang diperbarui untuk database saat ini.

DBCC UPDATEUSAGE (0);
GO

B. Memperbarui jumlah halaman atau baris atau keduanya untuk AdventureWorks, dan menekan pesan informasi

Contoh berikut menentukan AdventureWorks2025 sebagai nama database dan menekan semua pesan informasi.

DBCC UPDATEUSAGE (AdventureWorks2022) WITH NO_INFOMSGS;
GO

C. Memperbarui jumlah halaman atau baris atau keduanya untuk tabel Karyawan

Contoh berikut melaporkan informasi jumlah halaman atau baris yang Employee diperbarui untuk tabel dalam AdventureWorks2025 database.

DBCC UPDATEUSAGE (AdventureWorks2022, 'HumanResources.Employee');
GO

D. Memperbarui jumlah halaman atau baris atau keduanya untuk indeks tertentu dalam tabel

Contoh berikut menentukan IX_Employee_ManagerID sebagai nama indeks.

DBCC UPDATEUSAGE (AdventureWorks2022, 'HumanResources.Employee', IX_Employee_OrganizationLevel_OrganizationNode);
GO

Lihat juga