查看/修改优化器 / 并行设置
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 和查询结构决定性能。