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.

Tabellenwartung

Tabellen-Wartung

Analysiert, prüft, optimiert oder repariert die ausgewählten Tabellen, mit den Operationen, die der Server hat.

Wo es zu finden ist: Workspace › Werkzeuge › Tabellenwartung

Öffne Tabellenwartung über die Seitenleiste des Workspace. Wähl die Tabellen im Baum links aus (das Kästchen einer Datenbank markiert alle ihre Tabellen, oder du markierst sie einzeln), wähl oben die Operation — ANALYZE, CHECK, CHECKSUM, OPTIMIZE oder REPAIR — und klick auf Ausführen. Neben dem Button siehst du, wie viele Tabellen ausgewählt sind.

Die Ergebnisse erscheinen darunter, eine Zeile pro Meldung, die der Server für jede Tabelle zurückgibt: Warnungen sind orange hervorgehoben, Fehler rot. Bei InnoDB antwortet OPTIMIZE mit einem Hinweis: Es baut die Tabelle neu auf und analysiert sie stattdessen. CHECKSUM liefert eine Zahl pro Tabelle; dieselbe Zahl auf zwei Servern bedeutet dieselben Zeilen. REPAIR läuft nur auf Tabellen, deren Speicher-Engine sich reparieren kann: MyISAM, Aria, ARCHIVE und CSV. Bevor du es ausführst, sagt eine Zeile unter den Modifikatoren, wie viele der ausgewählten Tabellen übersprungen werden, und jede bekommt eine Zeile mit dem Grund; bei InnoDB schlägt die Zeile OPTIMIZE vor, das die Tabelle neu aufbaut. Auf dem Mac sortierst du die Ergebnisse per Klick auf einen Spaltenkopf; Ergebnisse leeren leert die Liste. Während eine Operation läuft, erscheinen neben Ausführen ein Fortschrittsbalken und Abbrechen; die Tabellen werden nacheinander verarbeitet, also hält Abbrechen vor der nächsten an.

Der Baum hat einen Filter nach Namen in der Kopfzeile, genau wie im SQL-Editor: Tipp einen Teil eines Datenbank- oder Tabellennamens ein, um die Liste einzugrenzen. Jede Datenbank lädt ihre Tabellen beim ersten Aufklappen; filterst du bei noch nicht aufgeklappten Datenbanken, nennt die Fußzeile die fehlende Anzahl und bietet an, sie zu laden. Alles auswählen durchläuft alle Datenbanken des Servers außer seinen Systemdatenbanken, die du von Hand markieren kannst, und kann einige Sekunden dauern. Lehnt der Server die Operation für eine Tabelle ab, bekommt diese Tabelle eine Fehlerzeile mit der Meldung des Servers.

SQL Server

Es gibt drei Operationen: ANALYZE (UPDATE STATISTICS), CHECK (DBCC CHECKTABLE) und OPTIMIZE (ALTER INDEX ALL … REBUILD). Es gibt kein REPAIR —es verlangt die Datenbank im Einzelbenutzermodus und kann Daten verlieren— und kein CHECKSUM. OPTIMIZE sperrt die Tabelle, solange es neu aufbaut: Den Neuaufbau online gibt es nur in der Enterprise-Edition, und nicht mit räumlichen Indizes.

PostgreSQL

Es gibt zwei Operationen: ANALYZE und OPTIMIZE, das VACUUM und danach REINDEX TABLE CONCURRENTLY ausführt und deshalb zwei Zeilen pro Tabelle liefert; keine der beiden hält die Tabelle an. Es gibt kein CHECK —der Kern hat nichts Vergleichbares—, kein REPAIR, kein CHECKSUM und keine Modifikatoren. VACUUM FULL, das als einziges dem System Speicherplatz zurückgibt, fehlt absichtlich: Es sperrt die ganze Tabelle, während es sie neu schreibt. Auf einem Server vor Version 12 bleibt OPTIMIZE beim VACUUM, und die Zeile des Index sagt, warum.

ClickHouse

Mit ClickHouse gibt es zwei Operationen: CHECK, das für jeden Part der Tabelle eine Zeile liefert, und OPTIMIZE, das ihre Parts zusammenführt. ANALYZE, REPAIR und CHECKSUM gibt es in der Engine nicht, und sie erscheinen nicht. Ist nur eine Tabelle angehakt, erscheint Partition, um eine Partition statt der ganzen Tabelle zu optimieren.

Oracle

Mit Oracle gibt es eine einzige Operation: ANALYZE, die die Statistik der Tabelle und ihrer Indizes mit DBMS_STATS.GATHER_TABLE_STATS erhebt. Die Ergebniszeile nennt, wie viele Zeilen die Statistik zählt und wann sie erhoben wurde. CHECK, REPAIR, CHECKSUM und OPTIMIZE gibt es nicht: Oracle hat diese Operationen pro Tabelle nicht, und sie werden nicht angeboten. Ohne Privileg auf eine Tabelle eines anderen Schemas sagt die Zeile, dass die Statistik nicht erhoben werden konnte, darunter die Meldung des Servers. Abbrechen unterbricht auch die laufende Tabelle: Der Server bricht ihr DBMS_STATS ab (ORA-01013), und diese Tabelle bekommt keine Zeile in der Liste.

Mit einem schreibgeschützten Umgebungsetikett wird dieses Werkzeug nicht angeboten. Bei einem, das Schreibzugriffe bestätigt, fragen ANALYZE, OPTIMIZE und REPAIR einmal pro Durchgang; CHECK und CHECKSUM, die lesen, fragen nicht.

Stichwörter: ANALYZE, CHECK, OPTIMIZE, REPAIR, Wartung, CHECKSUM

Operations-Modifikatoren

Zusätzliche Optionen, die das Verhalten der Operation verändern.

Wo es zu finden ist: Tabellenwartung › Modifikatoren-Raster

Unter der Operation liegt das Modifikatoren-Raster: LOCAL (ohne Binlog), FOR UPGRADE, QUICK, FAST, MEDIUM, EXTENDED, CHANGED und USE_FRM. Jede Operation aktiviert nur die, die sie akzeptiert, und ein Wechsel der Operation hebt sie auf. Zum Beispiel beschleunigt QUICK das CHECK, weil es die Zeilen nicht nach fehlerhaften Verweisen durchsucht, FOR UPGRADE prüft die Kompatibilität mit der aktuellen Serverversion, und LOCAL hält ANALYZE, OPTIMIZE und REPAIR aus dem Binärlog heraus, damit die Replikate sie nicht wiederholen. Bei CHECKSUM meldet QUICK nur die Prüfsumme, die eine Tabelle laufend führt, und die meisten führen keine. USE_FRM baut den Index einer MyISAM-Tabelle aus ihrer Definition neu auf, als letztes Mittel.

Das Raster zeigt nur die Modifikatoren, die die Engine hat. Mit SQL Server nimmt CHECK PHYSICAL_ONLY (nur die Struktur, schneller) und EXTENDED_LOGICAL_CHECKS; mit PostgreSQL gibt es keine, und der Abschnitt wird nicht gezeichnet.

ClickHouse

Mit ClickHouse ist der einzige Modifikator FINAL, für OPTIMIZE, und er ist zunächst aus: Er zwingt die Tabelle —oder die Partition— in einen einzigen Part, und beim Anhaken warnt ein Hinweis, dass das Stunden dauern und den doppelten Speicherplatz brauchen kann.

Oracle

Mit Oracle gibt es keine Modifikatoren, und der Abschnitt wird nicht angezeigt.

Stichwörter: QUICK, EXTENDED, FOR UPGRADE, LOCAL, Modifikatoren