Bagikan melalui


DBCC UPDATEUSAGE (Transact-SQL)

Berlaku untuk:SQL Server Azure SQL DatabaseAzure SQL Managed Instance

Melaporkan dan mengoreksi 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 ] ]

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.

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.

| table_name | table_id | view_name view_id

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

Menyembunyikan 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 menjalankan DBCC UPDATEUSAGE secara rutin (misalnya, mingguan) hanya jika database mengalami modifikasi Bahasa Definisi Data (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

A. 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 halaman atau baris yang diperbarui untuk database saat ini.

DBCC UPDATEUSAGE (0);
GO

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

Contoh berikut menentukan AdventureWorks2022 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 diperbarui untuk Employee tabel dalam AdventureWorks2022 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