Pourquoi le cache de plan contient-il des plans d'exécution estimés et non réels?


8

Je peux penser à de nombreuses raisons derrière cette décision de stocker les plans estimés dans le cache du plan et non au plan réel. Mais je ne trouve pas la "bonne" réponse.

Réponses:


12

Réfléchissez à ce que signifie «réel». C'est ce qui se passe réellement pour l'exécution de ce plan.

Un autre nom commun pour le plan d'exécution réel est le "plan de post-exécution" . Comme exemple du monde réel pour corréler ce scénario, disons que vous prévoyez de faire un voyage de cross-country, afin de tracer les routes que vous allez prendre et combien de temps vous pensez que cela prendra. Mais à cause des travaux routiers et des détours, cela ne se passe pas comme vous l'aviez prévu. C'est le plan d'exécution réel: l'itinéraire réel que vous avez emprunté pour arriver là où vous allez. Le plan estimé aurait été ce que vous pensiez que vous alliez faire et la route que vous pensiez que vous devriez prendre.

Vous ne pouvez pas stocker les plans de post-exécution car ils ne sont que cela .... post-exécution . Ils contiennent des mesures de ce qui s'est réellement passé, pas de ce que SQL Server pense qu'il devrait se produire (plan d'exécution estimé).

Le cache de plan n'est en réalité qu'un référentiel de «cartes» qu'il peut réutiliser sans avoir à passer le temps coûteux à en créer une nouvelle . Les plans d'exécution réels sont postérieurs au fait et le cache du plan doit être géré avant le fait .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.