Сбор статистики с расширенными параметрами (гистограммы и т. п.)
Oracle
EXEC DBMS_STATS.GATHER_TABLE_STATS(
ownname=>'HR', tabname=>'EMPLOYEE',
estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE,
method_opt=>'FOR ALL COLUMNS SIZE AUTO', degree=>4);method_opt управляет гистограммами, degree — параллелизмом. Для фиксации статистики используйте LOCK_TABLE_STATS.
PostgreSQL
ALTER TABLE customer ALTER COLUMN city SET STATISTICS 500;
ANALYZE customer;Целевой размер выборки для столбца; default_statistics_target задаёт глобальное значение по умолчанию.
MySQL
ANALYZE TABLE customer UPDATE HISTOGRAM ON city WITH 32 BUCKETS;Поддержка гистограмм в MySQL 8.0; полезна для столбцов, по которым фильтруют, но которые неселективны.
SQL Server
UPDATE STATISTICS dbo.customer WITH FULLSCAN;
-- Filtered statistics: CREATE STATISTICS ... WHERE ...FULLSCAN — самый точный; на больших таблицах используйте SAMPLE. AUTO_UPDATE_STATISTICS — для автоматического обновления.
MongoDB
// There are no manual statistics; the planner measures at runtime.
db.customer.getPlanCache().clear()Кроме очистки устаревшего кэша планов, ручная статистика не нужна.
Redis
# Not applicable.Статистики/оптимизатора нет.
Elasticsearch
# There is no statistics gathering; refresh searchability:
POST <index>/_refreshField data и doc values используются во время запроса; force merge сокращает число сегментов.