Diese Seite beschreibt Calíope 1.7, die Version, die ich gerade baue. Die 1.6 ist im App Store für Mac, iPad, iPhone, Apple Watch, Apple TV und Apple Vision Pro. Das Changelog sagt, in welcher Version jede Funktion kam.

Fügt jedem Thema einen Button „In Calíope öffnen“ hinzu. Funktioniert nur mit installierter App.

Visual EXPLAIN

Ausführungsplan visualisieren

Zeigt den Operationsbaum des Query-Optimierers.

Wo es zu finden ist: SQL-Editor › Visual EXPLAIN

Klick bei einer SELECT-Query im SQL-Editor auf Visual EXPLAIN in der Werkzeugleiste. Calíope fragt den Server nach dem Plan, ohne die Abfrage auszuführen —EXPLAIN FORMAT=JSON bei MySQL und MariaDB, EXPLAIN (FORMAT JSON) bei PostgreSQL, SET SHOWPLAN_XML bei SQL Server, EXPLAIN PLAN json = 1 bei ClickHouse, EXPLAIN PLAN FOR bei Oracle— und öffnet den Tab Visual EXPLAIN mit dem Knotenbaum des Plans.

Jeder Knoten zeigt den Zugriffstyp, den verwendeten Index (falls zutreffend), die geschätzte Zeilenzahl und das Detail, das die Engine hinzufügt: die Bedingung, den gewählten Index oder die Kosten. Eine Zeit erscheint nur, wenn die Engine sie gemessen hat, und ohne die Abfrage auszuführen misst sie keine.

Oracle

Bei Oracle wird der Plan in PLAN_TABLE geschrieben, und Calíope löscht seine Zeilen, sobald es ihn gelesen hat: Den Plan abzufragen ist ein Schreibvorgang auf dem Server, auch wenn die Abfrage ein SELECT ist. Das Detail jedes Knotens enthält die Operation (TABLE ACCESS FULL, INDEX RANGE SCAN), die Prädikate access und filter und die Kosten mit den geschätzten Bytes.

ClickHouse

Bei ClickHouse ist das Lesen jeder Tabelle gelb, wenn der Schlüssel oder ein Data-Skipping-Index Granulen übersprungen hat, und rot, wenn alle gelesen wurden. Das Detail beginnt mit den gelesenen von den vorhandenen Granulen („Granulen 2/123“), nennt dann, was jeder Index übersprungen hat, in Granulen und Teilen, und endet mit der Schätzung von Zeilen, Teilen und Marken.

Den Baum navigieren:
- macOS: das Mausrad oder eine Zwei-Finger-Pinch-Geste auf dem Trackpad zum Zoomen; ziehen, um den Canvas zu verschieben.
- iPad: mit zwei Fingern aufziehen zum Zoomen und mit einem Finger ziehen zum Verschieben.
- Überall: die Schaltflächen − und + in der Leiste, mit dem Prozentwert dazwischen, und An Fenster anpassen, um den ganzen Baum einzurahmen. Die Kürzel sind ⌘−, ⌘+ und ⌘0.

Die Skalierung reicht von 18 % bis 350 % — reichlich Platz für Pläne mit vielen Verschachtelungsebenen.

Apple Vision Pro: wie auf dem iPad, mit eigenen Gesten: zusammenführen und bewegen zum Verschieben der Ansicht, und mit beiden Händen zusammenziehen zum Zoomen. Tasten und Kurzbefehle sind dieselben.

Stichwörter: explain, Plan, Optimierer, Baum, JSON EXPLAIN, Zoom, Pan, navigieren, Pinch

Zugriffsfarben interpretieren

Die Farben der Knoten zeigen die Effizienz des Datenzugriffs an.

Wo es zu finden ist: Visual EXPLAIN › Farblegende

Die Knoten des Visual EXPLAIN werden nach Zugriffstyp eingefärbt, und jede Karte schreibt ihn auch in ihre Zeile Zugriff: grün = Schlüsselsuche oder Konstante (die Engine geht direkt zur Zeile oder liest gar keine Daten), gelb = Durchlauf eines Bereichs eines Index, orange = Durchlauf eines ganzen Index, rot = vollständiger Tabellenscan (ohne Index, der schlechteste Fall), blau = Sortierung, violett = Verknüpfung mehrerer Tabellen, grau = der Rest (eine Aggregation, eine Unterabfrage oder eine Operation, die Calíope nicht einordnet). Die Legende in der Leiste nennt die vier aussagekräftigsten: grün, gelb, rot und blau.

Ein roter Knoten weist auf eine Optimierungsmöglichkeit hin, meist durch Hinzufügen eines Index.

Stichwörter: Full Scan, Range, Index, Farben, Optimierung, explain

Visual EXPLAIN mit VoiceOver

Die Arbeitsfläche ist eine Zeichnung, die VoiceOver nicht lesen kann: Der Plan wird als Liste in Baumreihenfolge gegeben, nach Tiefe eingerückt.

Wo es zu finden ist: Workspace › Werkzeuge › EXPLAIN

Die Arbeitsfläche des Plans ist eine Zeichnung, die VoiceOver nicht lesen kann, deshalb bietet Calíope sie als Liste an. Der Abschnitt Hierarchie des Ausführungsplans hat eine Zeile pro Knoten, in der Reihenfolge des Baums und nach Tiefe eingerückt, mit dem Namen des Knotens und seiner Zugriffsart, den geschätzten Zeilen, der Zeit und dem Detail. Die Zeit lautet immer „—“, weil der Plan angefordert wird, ohne die Abfrage auszuführen.

Es funktioniert auf allen Plattformen gleich.

Stichwörter: VoiceOver, Bedienungshilfen, EXPLAIN, Plan, Knoten