Tabellen-Wartung
In Calíope öffnenAnalysiert, 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