Bagaimana cara memeriksa kapan statistik terakhir dieksekusi?

9

Kami telah mengalami sejumlah masalah dengan indeks kami belakangan ini yang oleh tim DBA kami dikaitkan dengan statistik yang belum dijalankan baru-baru ini. Ini membuat saya bertanya-tanya - bagaimana saya bisa mengecek apakah statistik baru-baru ini diperbarui melalui SQL Management Studio?

Saya minta maaf jika pertanyaan ini tidak menjelaskan ini dengan sangat baik - Saya hanya diperkenalkan ke statistik sampai sekarang dan sebelum ini akan melihat ke indeks setiap kali saya memiliki masalah terkait kinerja.

Edit :

Saya menggunakan yang berikut ini tetapi menerima kesalahan sintaksis:

use *databasename*
exec sp_autostats *schema.tablename*

Kesalahan yang saya terima adalah:

Msg 102, Level 15, State 1, Line 2
Incorrect syntax near '.'.

Kenapa ini?

Michael A
sumber

Jawaban:

12

Untuk hasil edit Anda - Anda harus menyertakan nama tabel menjadi satu tanda kutip:

EXEC sp_autostats 'tablename'

dan untuk pertanyaan awal

Pertama - temukan statistik yang ingin Anda periksa:

pilih statistik

Kedua - lihat propertinya, dan di sana Anda akan melihat cap waktu yang terakhir diperbarui:

masukkan deskripsi gambar di sini

Atau Anda mungkin ingin menjalankan kueri berikut:

SELECT t.name TableName, s.[name] StatName, STATS_DATE(t.object_id,s.[stats_id]) LastUpdated 
FROM sys.[stats] AS s
JOIN sys.[tables] AS t
    ON [s].[object_id] = [t].[object_id]
WHERE t.type = 'u'
Oleg Dok
sumber
9

Cara terbaik untuk mendapatkan informasi tentang statistik adalah melalui perintah

DBCC SHOW_STATISTICS (<tablename>,<indexname>)

Itu akan mengembalikan informasi bukan hanya tentang kapan statistik di mana diperbarui, tetapi ukurannya, kepadatannya, seberapa selektifnya mereka, dan histogram yang menunjukkan distribusi data. Dengan semua itu, Anda dapat menentukan apakah statistik tersebut mutakhir dan efektif.

Berikan Fritchey
sumber