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 (Transact-SQL). Untuk informasi selengkapnya tentang statistik, lihat Statistik.

Konvensi sintaks transact-SQL

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 NOdefault .

Keterangan

sp_updatestatsUPDATE STATISTICSmenjalankan , 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.