DBAtlas · Atlas de operaciones de bases de datos

Ver/cambiar la configuración del optimizador / paralelismo

Oracle

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

Parámetros como optimizer_index_cost_adj y parallel_degree_policy afectan a la elección del plan; cámbielos con cuidado.

PostgreSQL

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

En SSD se recomienda random_page_cost ~1.1. Los flags enable_* son para diagnóstico, no una solución permanente.

MySQL

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

optimizer_switch activa/desactiva optimizaciones individuales; pruebe a nivel de sesión.

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 es ilimitado; normalmente 4-8 para OLTP. El valor por defecto de 5 de 'cost threshold for parallelism' es demasiado bajo en la mayoría de los casos.

MongoDB

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

allPlansExecution muestra todos los planes evaluados por el planificador.

Redis

# Not applicable.

No hay planificador; io-threads y la elección de la estructura de datos determinan el rendimiento.

Elasticsearch

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

No hay optimizador; el número de shards, el routing y la estructura de la consulta determinan el rendimiento.

Abrir en DBAtlas →