it-swarm.it

Come verificare l'ultima volta che le statistiche sono state eseguite?

Ultimamente abbiamo riscontrato una serie di problemi con i nostri indici che il nostro team DBA ha attribuito a statistiche che non erano state eseguite di recente. Questo mi ha fatto meravigliare: come posso verificare se le statistiche sono state recentemente aggiornate tramite SQL Management Studio?

Mi scuso se questa domanda non sta spiegando molto bene: fino ad ora sono stata introdotta alle statistiche e prima di questo guarderei agli indici ogni volta che ho avuto problemi relativi alle prestazioni.

Edit:

Sto usando il seguente ma ricevendo un errore di sintassi:

use *databasename*
exec sp_autostats *schema.tablename*

L'errore che sto ricevendo è:

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

Perchè è questo?

8
Michael A

Per la tua modifica - Devi racchiudere il nome della tabella tra virgolette singole:

EXEC sp_autostats 'tablename'

e per la domanda originale

Innanzitutto: trova le statistiche che desideri controllare:

choose statistics

Secondo: vedi le sue proprietà e lì vedrai l'ultimo timestamp aggiornato:

enter image description here

Oppure potresti voler eseguire la seguente query:

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'
11
Oleg Dok

Il modo migliore per ottenere informazioni sulle statistiche è tramite il comando

DBCC SHOW_STATISTICS (<tablename>,<indexname>)

Ciò restituirà informazioni non solo su quando le statistiche sono state aggiornate, ma sulle loro dimensioni, densità, quanto sono selettive e l'istogramma che mostra la distribuzione dei dati. Con tutto ciò, puoi determinare se tali statistiche sono aggiornate ed efficaci.

8
Grant Fritchey