web-dev-qa-db-fra.com

Comment vérifier la dernière exécution des statistiques?

Nous avons eu un certain nombre de problèmes avec nos index récemment que notre équipe DBA a attribués à des statistiques n'ayant pas été exécutées récemment. Cela m'a fait me demander - comment puis-je vérifier si les statistiques ont été récemment mises à jour via SQL Management Studio?

Je m'excuse si cette question n'explique pas très bien cela - je n'ai été initié aux statistiques que jusqu'à présent et avant cela, je regardais les index chaque fois que j'avais des problèmes de performances.

Modifier :

J'utilise ce qui suit mais je reçois une erreur de syntaxe:

use *databasename*
exec sp_autostats *schema.tablename*

L'erreur que je reçois est:

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

Pourquoi est-ce?

8
Michael A

Pour votre modification - Vous devez mettre le nom de la table entre guillemets simples:

EXEC sp_autostats 'tablename'

et pour la question d'origine

Premièrement - trouvez les statistiques que vous souhaitez vérifier:

choose statistics

Deuxièmement - voir ses propriétés, et là vous verrez le dernier horodatage mis à jour:

enter image description here

Ou vous souhaiterez peut-être exécuter la requête suivante:

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

La meilleure façon d'obtenir des informations sur les statistiques consiste à utiliser la commande

DBCC SHOW_STATISTICS (<tablename>,<indexname>)

Cela renverra des informations non seulement sur le moment où les statistiques ont été mises à jour, mais sur leur taille, leur densité, leur sélectivité et l'histogramme qui montre la distribution des données. Avec tout cela, vous pouvez déterminer si ces statistiques sont à jour et efficaces.

8
Grant Fritchey