DBAtlas · Атлас эксплуатации баз данных

Обновить статистику (для оптимизатора)

Oracle

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

Задание AUTO обычно собирает её ночью; при проблеме соберите вручную. Рекомендуется ESTIMATE_PERCENT=>AUTO_SAMPLE_SIZE.

PostgreSQL

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

Autovacuum делает это автоматически; ручной ANALYZE после резкой загрузки данных даёт точные планы.

MySQL

ANALYZE TABLE customer;

В InnoDB берёт кратковременную блокировку чтения; на больших таблицах запускайте в период низкой активности.

SQL Server

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

FULLSCAN — самый точный, но и самый дорогой; на больших таблицах может быть предпочтительна выборка (SAMPLE).

MongoDB

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

Вместо оценки стоимости MongoDB проводит реальные пробы (plan racing); ручная статистика не нужна.

Redis

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

Сложность команд фиксирована; производительность зависит от выбора структуры данных.

Открыть в DBAtlas →