Les statistiques SQL Server sont-elles stockées dans la base de données ou le pool de tampons?

10

Vous vous demandez simplement si les statistiques sont conservées dans la base de données mais pas dans la mémoire? Si je sauvegarde / restaure la base de données d'un serveur prod vers un serveur de développement, conserverait-il les mêmes statistiques afin que les plans d'exécution ne soient pas très différents si je le fais sur le serveur de développement?

Joy Walker
la source

Réponses:

15

Le pool de tampons est un cache de la base de données. Il n'y a jamais de «ou», les choses qui sont dans le pool de mémoire tampon sont toujours dans la base de données, toujours. Et tout ce qui est lu dans la base de données doit être, même temporairement, présent dans le pool de mémoire tampon.

Quant à la question: les statistiques sont dans la base de données, donc une sauvegarde / restauration préservera les statistiques.

Notez cependant que la conservation des statistiques n'est pas une garantie pour planifier la reproductibilité. D'autres facteurs influencent la génération du plan, comme le nombre de CPU et la quantité de RAM.

Remus Rusanu
la source
ok, donne un sens. Merci pour la clarification!
Joy Walker
3

Comme l'a dit Remus , les statistiques des tables sont stockées dans la base de données de manière similaire à d'autres objets comme les tables et les index. Ils jouent un grand rôle dans la sélection du plan d'exécution, mais il existe d'autres facteurs.

Cela étant dit, SQL Server connaît un autre type de statistiques, des statistiques qui nous donnent des informations sur le comportement récent.

Par exemple, les DMV ys.dm_db_index_usage_statset les sys.dm_db_index_operational_statsstatistiques de retour sur la façon dont l'index est utilisé.

Ces statistiques sont stockées en mémoire uniquement. Se perdre au redémarrage du serveur et ne pas voyager avec la sauvegarde.

Cependant, l'optimiseur ne les utilise pas non plus pour générer un plan.

Sebastian Meine
la source
Ouais, c'est pourquoi j'ai eu la question / confusion en premier lieu. Je pensais que les statistiques sont similaires aux DMV. Ils pourraient disparaître lorsque le serveur redémarre ou que db est restauré sur un autre serveur. Merci d'avoir fait le point.
Joy Walker