Heim >Datenbank >MySQL-Tutorial >Warum zeigen meine fensterbasierten aggregierten Abfragen viele logische Lesevorgänge an?
Hohe Anzahl logischer Lesevorgänge in Ausführungsplänen für Aggregatfunktionen mit Fenster und gemeinsamen Unterausdruckspools
In Ausführungsplänen werden häufig hohe gemeldete logische Lesevorgänge für große Tabellen beobachtet Verwendung gängiger Unterausdrucksspulen. Die Formel für logische Lesevorgänge in Arbeitstabellen lautet:
Worktable Logical Reads = 1 + NumberOfRows * 2 + NumberOfGroups * 4
Erklärung
Im Gegensatz zu herkömmlichen Spooltabellen zählen Arbeitstabellen logische Lesevorgänge pro Zeilenlesevorgang, was zu einer erhöhten Anzahl logischer Lesevorgänge führt. Dies liegt daran, dass Arbeitstabellen serverintern sind und die gehashte Seitenzählung für die Analyse als weniger wertvoll erachtet wird.
Die Formel lässt sich wie folgt aufschlüsseln:
Zusätzliche Erkenntnisse
Paul White erklärt in seinem Blogbeitrag, dass die Formel mit dem Ausführungsplan übereinstimmt, wobei die beiden sekundären Spulen zweimal vollständig gelesen werden und die primäre Spule (Anzahl der Gruppen 1) Zeilen ausgibt. Die zusätzliche Zeile wird von der Primärspule ausgegeben, um das Ende der letzten Gruppe anzuzeigen.
Fazit
Die Formel für logische Lesevorgänge in Arbeitstabellen ist ein nützliches Werkzeug zum Verständnis der überhöhten Logik Lesezahlen, die in Ausführungsplänen mit gemeinsamen Unterausdruckspools beobachtet werden. Durch die Erkenntnis, dass Arbeitstabellen logische Lesevorgänge unterschiedlich zählen, wird es einfacher, die Lesestatistiken zu interpretieren und die Effizienz des Plans zu beurteilen.
Das obige ist der detaillierte Inhalt vonWarum zeigen meine fensterbasierten aggregierten Abfragen viele logische Lesevorgänge an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!