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

Посмотреть/изменить настройки оптимизатора / параллелизма

Oracle

SHOW PARAMETER optimizer;
-- Session: ALTER SESSION SET optimizer_mode = FIRST_ROWS_10;
-- Parallelism: ALTER SESSION FORCE PARALLEL QUERY PARALLEL 4;

Параметры вроде optimizer_index_cost_adj и parallel_degree_policy влияют на выбор плана; меняйте их осторожно.

PostgreSQL

SHOW random_page_cost;
SHOW max_parallel_workers_per_gather;
-- Session: SET enable_seqscan = off;

На SSD рекомендуется random_page_cost ~1.1. Флаги enable_* — для диагностики, а не постоянное решение.

MySQL

SELECT @@optimizer_switch;
SET SESSION optimizer_switch='index_merge=off';

optimizer_switch включает/выключает отдельные оптимизации; тестируйте на уровне сессии.

SQL Server

-- Instance-level MAXDOP and cost threshold:
EXEC sp_configure 'max degree of parallelism', 8; RECONFIGURE;
-- Database level: ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 8;

MAXDOP=0 — без ограничений; для OLTP обычно 4-8. Значение «cost threshold for parallelism» по умолчанию (5) для большинства слишком мало.

MongoDB

# There are no optimizer parameters; indexes and query shape are decisive.
db.customer.find({...}).explain('allPlansExecution')

allPlansExecution показывает все планы, оценённые планировщиком.

Redis

# Not applicable.

Планировщика нет; производительность определяют io-threads и выбор структуры данных.

Elasticsearch

GET <index>/_settings?include_defaults=true
# search limits such as search.max_buckets, index.max_result_window

Оптимизатора нет; производительность определяют число шардов, routing и структура запроса.

Открыть в DBAtlas →