


Pourquoi les lectures logiques pour les fonctions d'agrégation fenêtrées sont-elles si élevées ?
Les fonctions d'agrégation fenêtrées peuvent entraîner des lectures logiques élevées signalées dans les plans d'exécution avec des bobines de sous-expression, en particulier pour les grandes tables. Cet article vise à expliquer la raison de cette observation et à fournir des informations sur la compréhension du nombre de lectures logiques pour les tables de travail.
Explication
Les lectures logiques sont comptées différemment pour les tables de travail par rapport aux tables de travail conventionnelles. tables de bobines. Dans les tables de travail, chaque lecture de ligne se traduit par une « lecture logique ». Ceci est différent du rapport sur les pages hachées pour les « vraies » tables de bobine.
La raison pour laquelle le comptage des lectures est effectué de cette manière est qu'il fournit des informations plus significatives pour l'analyse. Le suivi des pages hachées pour les tables de travail est moins utile en raison de la nature interne de ces structures. Les lignes de rapport mises en file d'attente reflètent mieux l'utilisation réelle des ressources tempdb.
Dérivation de formule
La formule dérivée pour prédire les lectures logiques de la table de travail est :
Worktable logical reads = 1 + (NumberOfRows * 2) + (NumberOfGroups * 4)
Cette formule prend en compte le suivant :
- 1 : Représente le chargement initial des données dans la table de travail.
- NumberOfRows * 2 : Les deux spools secondaires ( créé pour réduire le coût de retour des lignes) sont entièrement lus deux fois.
- NumberOfGroups * 4 : Le spool principal émet des lignes comme expliqué ci-dessous, ce qui entraîne le nombre de valeurs de groupe distinctes (plus 1).
Émission de rangée de bobine primaire
La bobine primaire, chargée d'accumuler lignes et effectue le calcul global, fonctionne comme suit :
- Lit chaque ligne de l'entrée et l'écrit dans la table de travail.
- Lorsqu'un nouveau groupe est rencontré, il émet une ligne à l'opérateur de boucles imbriquées, indiquant le début d'une nouvelle partition de groupe.
- Les moyennes pour chaque groupe sont calculées à l'aide des lignes du table de travail.
- Les moyennes sont jointes aux lignes de la table de travail.
- La table de travail est tronquée pour préparer le groupe suivant.
- Pour traiter le groupe final, la bobine émet une ligne factice.
Supplémentaire Considérations
Dans votre script de test, vous avez remarqué que la réplication du même processus entraînait moins de lectures logiques (11). Cet écart est attribué à l'optimisation des algorithmes utilisés par le processeur de requêtes dans différents environnements. La formule reste valable dans les cas généraux où des boucles imbriquées ou des jointures de hachage sont utilisées.
Conclusion
Comprendre les différences de comptage pour les lectures logiques dans les tables de travail est essentiel pour interpréter avec précision les plans d'exécution impliquant des fonctions d'agrégation fenêtrées. La formule fournie offre un moyen utile d'estimer les lectures logiques de la table de travail, facilitant ainsi l'analyse des performances et les efforts d'optimisation.
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!

MySQLDIFFERSFromothersqlDialictsinsyntaxforlimit, auto-imprémentation, stringcomparison, sous-questionnaires et performanceanalysis.1) MySqluseSlimit, WhilesQlServerUseStopandorAnUseSrownum.2)

Le partitionnement MySQL améliore les performances et simplifie la maintenance. 1) Diviser les grandes tables en petits morceaux par des critères spécifiques (tels que les gammes de dattes), 2) Divisez physiquement les données en fichiers indépendants, 3) MySQL peut se concentrer sur des partitions connexes lors de l'interrogation, 4) L'optimiseur de requête peut ignorer les partitions non liées, 5) le choix de la bonne stratégie de partition et le maintenir régulièrement est la clé.

Comment accorder et révoquer les autorisations dans MySQL? 1. Utilisez la déclaration de subvention pour accorder des autorisations, telles que GrantallPrivilegesondatabase_Name.to'Username'@'host '; 2. Utilisez la déclaration de révocation pour révoquer les autorisations, telles que Revokeallprivilegesondatabase_name.from'username'@'host 'pour garantir la communication opportune des modifications d'autorisation.

INNODB convient aux applications qui nécessitent un support de transaction et une concurrence élevée, tandis que Myisam convient aux applications qui nécessitent plus de lectures et moins d'écritures. 1.InNODB prend en charge les verrous de transaction et de bancs, adaptés aux systèmes de commerce électronique et bancaire. 2.Myisam fournit une lecture et une indexation rapides, adaptées aux systèmes de blogs et de gestion de contenu.

Il existe quatre types de jointures principales dans MySQL: innerjoin, gauche, droite et fullouterjoin. 1.Innerjoin Renvoie toutes les lignes dans les deux tableaux qui remplissent les conditions de jointure. 2.Leftjoin Renvoie toutes les lignes de la table de gauche, même s'il n'y a pas de lignes correspondantes dans la table droite. 3. Le droit est contraire à la gauche et renvoie toutes les lignes dans la table droite. 4.FulLouterJoin Renvoie toutes les lignes dans les deux tableaux qui se rencontrent ou ne remplissent pas les conditions de jointure.

MySQLoffersVariousStorageEngines, chacune, chacun desCasses: 1) InnodbisidealForApplications newedingacidcompenciance and highcurrency, soutenant les transactions et manqueurs

Les vulnérabilités de sécurité courantes dans MySQL incluent l'injection SQL, les mots de passe faibles, la configuration d'autorisation incorrecte et les logiciels unpudés. 1. L'injection SQL peut être évitée en utilisant des instructions de prétraitement. 2. Les mots de passe faibles peuvent être évités en utilisant de force des stratégies de mot de passe solides. 3. Une mauvaise configuration d'autorisation peut être résolue par examen régulier et ajustement des autorisations utilisateur. 4. Les logiciels unpus peuvent être corrigés en vérifiant et mise à jour régulièrement la version MySQL.

L'identification des requêtes lentes dans MySQL peut être réalisée en activant les journaux de requête lents et en définissant des seuils. 1. Activer les journaux de requête lents et définir les seuils. 2. Afficher et analyser les fichiers journaux de requête lente et utiliser des outils tels que MySqlDumpSlow ou Pt-Query-digest pour une analyse approfondie. 3. Optimisation des requêtes lentes peut être réalisée grâce à l'optimisation de l'index, à la réécriture de la requête et à l'évitement de l'utilisation de Select *.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Dreamweaver Mac
Outils de développement Web visuel

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

mPDF
mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

SublimeText3 version anglaise
Recommandé : version Win, prend en charge les invites de code !

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft
