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?
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:
Deuxièmement - voir ses propriétés, et là vous verrez le dernier horodatage mis à jour:
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'
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.