DBAtlas · Atlas für Datenbankbetrieb

Statistiken aktualisieren (für den Optimizer)

Oracle

EXEC DBMS_STATS.GATHER_TABLE_STATS('HR', 'EMPLOYEE');
-- Whole schema: EXEC DBMS_STATS.GATHER_SCHEMA_STATS('HR');

Der AUTO-Task sammelt sie meist nachts; bei Problemen manuell sammeln. ESTIMATE_PERCENT=>AUTO_SAMPLE_SIZE wird empfohlen.

PostgreSQL

ANALYZE customer;
-- Both cleanup and analyze: VACUUM ANALYZE customer;

Autovacuum erledigt das automatisch; ein manuelles ANALYZE nach einem plötzlichen Datenimport sorgt für genaue Pläne.

MySQL

ANALYZE TABLE customer;

Setzt bei InnoDB kurz eine Lesesperre; bei großen Tabellen in Zeiten geringer Aktivität ausführen.

SQL Server

UPDATE STATISTICS dbo.customer WITH FULLSCAN;
-- Whole database: EXEC sp_updatestats;

FULLSCAN ist am genauesten, aber am teuersten; bei großen Tabellen kann Sampling (SAMPLE) vorzuziehen sein.

MongoDB

// There are no manual statistics; the planner measures at runtime.
// To clear a stale plan cache:
db.customer.getPlanCache().clear()

Statt Kostenschätzung führt MongoDB echte Testläufe aus (Plan Racing); manuelle Statistiken sind nicht nötig.

Redis

# Not applicable: Redis has no query optimizer / statistics.

Die Befehlskomplexität ist fest; die Performance hängt von der Wahl der Datenstruktur ab.

In DBAtlas öffnen →