“优化 Parallel Query(并行查询)”通常指提升数据库或查询引擎中并行执行 SQL/查询的效率和吞吐量。下面从通用原则 → 具体手段 → 常见坑三个层次说明。
ALTER SESSION SET parallel_degree_policy = AUTO;
ALTER TABLE t PARALLEL 8;
以下操作容易破坏并行:
✅ 改写示例:
-- 差
SELECT name, (SELECT max(score) FROM scores s WHERE s.id = u.id)
FROM users u;
-- 好
SELECT u.name, max(s.score)
FROM users u
JOIN scores s ON s.id = u.id
GROUP BY u.name;
✅ 示例:
PARTITION BY RANGE (created_date)
RULE 模式SELECT /*+ PARALLEL(t 8) */ * FROM t;
sort_area_size / work_mem| 数据库 | 关键点 |
|---|---|
| Oracle | DOP、PX 进程、并行 hints |
| PostgreSQL | max_parallel_workers |
| MySQL | 基本不支持真正并行查询 |
| ClickHouse | 天生列式 + 并行 |
| Spark SQL | shuffle 分区数 |
❌ 并行查询 + 小表
❌ 并行 + 高并发 OLTP
❌ 并行度 > CPU 核数
❌ 未收集统计信息
如果你能告诉我:
我可以直接给你针对性优化方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。