Maison >base de données >tutoriel mysql >Pourquoi mes requêtes agrégées fenêtrées affichent-elles des lectures logiques étonnamment élevées lors de l'utilisation de spools de sous-expressions courants ?

Pourquoi mes requêtes agrégées fenêtrées affichent-elles des lectures logiques étonnamment élevées lors de l'utilisation de spools de sous-expressions courants ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-21 05:57:14345parcourir

Why Are My Windowed Aggregate Queries Showing Unexpectedly High Logical Reads When Using Common Subexpression Spools?

Pourquoi des lectures logiques élevées pour les fonctions d'agrégation fenêtrées avec des bobines de sous-expression communes ?

Lors de l'utilisation de bobines de sous-expression communes dans les plans d'exécution, notamment pour les fonctions d'agrégation fenêtrées, des lectures logiques étonnamment élevées pour les grandes tables ont été observées. Ce comportement soulève des inquiétudes quant à l'efficacité de ces spools.

Cause fondamentale : comptage unique des lectures logiques pour les tables de travail

Contrairement aux tables de spool traditionnelles, les lectures logiques pour les tables de travail, qui sont des structures internes utilisées pour l'agrégation , sont comptés différemment. Au lieu de mesurer les pages hachées, les lectures logiques de la table de travail sont incrémentées pour chaque ligne lue. Cette méthode de comptage unique donne des décomptes apparemment élevés, bien que les tables de travail soient très efficaces.

Comprendre la formule

Dans votre cas spécifique, la formule que vous avez découverte, "Lectures logiques de la table de travail = 1 NumberOfRows 2 NumberOfGroups 4", est vrai en raison du comportement spécifique de ces bobines :

  • 1 : Rangée factice initiale et finale
  • NumberOfRows * 2 : Lecture complète des deux bobines secondaires
  • Nombre de groupes * 4 : Primaire La bobine émet (NumberOfGroups 1) lignes

Informations supplémentaires

  • La bobine principale émet une ligne supplémentaire pour signaler la fin du groupe final.
  • Le la formule prend en compte cette ligne supplémentaire dans le composant final, ce qui en fait NumberOfGroups 1.

Conseils de dépannage

Bien que le suivi des lectures de pages ne soit pas une option pour les tables de travail, comprendre ces mécanismes de comptage uniques peut aider à expliquer les lectures logiques élevées observées.

Référence

Pour plus de précisions, reportez-vous à :

  • Requête Livre de réglage et d'optimisation, chapitre 3
  • Article de blog de Paul White sur les bobines de sous-expression courantes

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn