web-dev-qa-db-fra.com

Le redémarrage des services SQL (sur la machine) vide-t-il le cache du serveur (pour des choses comme les plans de requête et les statistiques)?

Le cache du serveur est-il effacé (de la même manière que lorsque vous redémarrez l'instance/la machine SQL) lorsque vous redémarrez uniquement les services SQL eux-mêmes?

8
J.D.

Oui. Étant donné que SQL Server est responsable de la maintenance de ces caches, lorsque vous arrêtez les services de SQL Server, il libère la mémoire dans le système d'exploitation.

12
Laughing Vergil

Le comportement n'est pas différent entre redémarrer le service seul ou redémarrer le service en raison du redémarrage du système d'exploitation sous-jacent. Quelles informations sont effacées lors d'un tel redémarrage?

  • Plans de requête? Oui.
  • Données de table/index? Oui.
  • Statistiques? Non.

(Les plans de requête, qui utilisent des statistiques, devront être recompilés, mais les statistiques n'auront pas à être recréées à moins qu'il y ait également un événement ou une condition pour le déclencher (il y en a plusieurs).)

Si vous arrêtez le service pendant qu'une transaction est annulée, vous n'avez probablement rien accompli, car la restauration peut simplement recommencer là où elle s'était arrêtée (ou elle devra peut-être recommencer complètement, selon le type d'activité qui devient annulées).

Si vous avez redémarré le service parce que vous étiez impatient d'attendre la fin d'un rollback, c'est probablement une leçon coûteuse que vous n'aurez à faire qu'une ou deux fois avant d'arrêter d'essayer. Voir:

15
Aaron Bertrand

sQL Server réserve la mémoire du système d'exploitation appelée pool de tampons au démarrage. la charge de travail quotidienne augmente le pool de mémoire tampon et chaque page, cache, statistiques de requête, statistiques de procédure, etc. sont stockées dans le pool de mémoire tampon. ces informations résident dans le pool de mémoire tampon jusqu'à ce que les événements suivants se produisent.

  1. redémarrage du serveur/système SQL
  2. instruction dbcc dropcleanbuffers exécutée
  3. Pression de mémoire.

j'espère que cela vous aidera à comprendre.

0
Vinod Narwal