sp_updatestats (T-SQL)
Berlaku untuk: SQL ServerAzure SQL Database
UPDATE STATISTICS
Berjalan terhadap semua tabel yang ditentukan pengguna dan internal dalam database saat ini.
Untuk informasi selengkapnya tentang UPDATE STATISTICS
, lihat MEMPERBARUI STATISTIK. Untuk informasi selengkapnya tentang statistik, lihat Statistik.
Sintaks
sp_updatestats [ [ @resample = ] 'resample' ]
Mengembalikan nilai kode
0
(berhasil) atau 1
(kegagalan).
Argumen
[ @resample = ] 'pengambilan sampel ulang'
Menentukan yang sp_updatestats
menggunakan RESAMPLE
opsi pernyataan UPDATE STATISTICS . Jika resample
tidak ditentukan, sp_updatestats
perbarui statistik dengan menggunakan pengambilan sampel default. Argumen resample
adalah varchar(8) dengan nilai NO
default .
Keterangan
sp_updatestats
UPDATE STATISTICS
menjalankan , dengan menentukan ALL
kata kunci, pada semua tabel yang ditentukan pengguna dan internal dalam database. sp_updatestats
menampilkan pesan yang menunjukkan kemajuannya. Ketika pembaruan selesai, ia melaporkan bahwa statistik diperbarui untuk semua tabel.
sp_updatestats
memperbarui statistik pada indeks non-kluster yang dinonaktifkan dan tidak memperbarui statistik pada indeks berkluster yang dinonaktifkan.
Untuk tabel berbasis disk, sp_updatestats
perbarui statistik berdasarkan modification_counter
informasi dalam tampilan katalog sys.dm_db_stats_properties , memperbarui statistik di mana setidaknya satu baris dimodifikasi. Statistik pada tabel yang dioptimalkan memori selalu diperbarui saat menjalankan sp_updatestats
. Oleh karena itu jangan mengeksekusi sp_updatestats
lebih dari yang diperlukan.
sp_updatestats
dapat memicu kompilasi ulang prosedur tersimpan atau kode terkompilasi lainnya. Namun, sp_updatestats
mungkin tidak menyebabkan kompilasi ulang, jika hanya satu rencana kueri yang dimungkinkan untuk tabel yang direferensikan dan indeks pada mereka. Kompilasi ulang tidak akan diperlukan dalam kasus ini bahkan jika statistik diperbarui.
sp_updatestats
mempertahankan opsi terbaru NORECOMPUTE
untuk statistik tertentu. Untuk informasi selengkapnya tentang menonaktifkan dan mengaktifkan kembali pembaruan statistik, lihat Statistik.
Saat memulihkan database ke SQL Server 2022 (16.x) dari versi sebelumnya, Anda harus menjalankan sp_updatestats
pada database. Ini terkait dengan pengaturan metadata yang tepat untuk fitur penurunan otomatis statistik yang diperkenalkan di SQL Server 2022 (16.x). Fitur penurunan otomatis tersedia di Azure SQL Database, Azure SQL Managed Instance, dan dimulai dengan SQL Server 2022 (16.x).
Izin
Untuk SQL Server, Anda harus menjadi pemilik database (dbo), atau anggota peran server tetap sysadmin .
Untuk Azure SQL Database, Anda harus menjadi anggota peran database tetap db_owner .
Contoh
Contoh berikut memperbarui statistik untuk semua tabel database:
USE AdventureWorks2022;
GO
EXEC sp_updatestats;
Manajemen indeks dan statistik otomatis
Gunakan solusi seperti Defrag Indeks Adaptif untuk mengelola defragmentasi indeks dan pembaruan statistik secara otomatis untuk satu atau beberapa database. Prosedur ini secara otomatis memilih apakah akan membangun kembali atau mengatur ulang indeks sesuai dengan tingkat fragmentasinya, di antara parameter lainnya, dan memperbarui statistik dengan ambang batas linier.