Wie überprüfe ich, wann die Statistik zuletzt ausgeführt wurde?

8

Wir hatten in letzter Zeit eine Reihe von Problemen mit unseren Indizes, die unser DBA-Team auf Statistiken zurückgeführt hat, die in letzter Zeit nicht ausgeführt wurden. Ich habe mich gefragt, wie ich überprüfen kann, ob Statistiken kürzlich über SQL Management Studio aktualisiert wurden.

Ich entschuldige mich, wenn diese Frage dies nicht sehr gut erklärt. Ich wurde bisher nur in die Statistik eingeführt und habe mich zuvor mit Indizes befasst, wenn ich leistungsbezogene Probleme hatte.

Bearbeiten :

Ich verwende Folgendes, erhalte jedoch einen Syntaxfehler:

use *databasename*
exec sp_autostats *schema.tablename*

Der Fehler, den ich erhalte, ist:

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

Warum ist das?

Michael A.
quelle

Antworten:

11

Für Ihre Bearbeitung - Sie müssen den Tabellennamen in einfache Anführungszeichen setzen:

EXEC sp_autostats 'tablename'

und für die ursprüngliche Frage

Suchen Sie zuerst die Statistiken, die Sie überprüfen möchten:

Wählen Sie Statistiken

Zweitens - sehen Sie sich seine Eigenschaften an und dort sehen Sie den zuletzt aktualisierten Zeitstempel:

Geben Sie hier die Bildbeschreibung ein

Oder Sie möchten die folgende Abfrage ausführen:

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
quelle
8

Der beste Weg, um Informationen über Statistiken zu erhalten, ist über den Befehl

DBCC SHOW_STATISTICS (<tablename>,<indexname>)

Dadurch werden nicht nur Informationen zurückgegeben, wann die Statistiken aktualisiert wurden, sondern auch deren Größe, Dichte, Selektivität und das Histogramm, das die Verteilung der Daten anzeigt. Mit all dem können Sie feststellen, ob diese Statistiken aktuell und effektiv sind.

Grant Fritchey
quelle