
3 个赞
OceanBase 并行度核心区别在于:parallel_degree_policy控制谁来决定并行度(自动 vs 手动),而 parallel_servers_target 控制允许多少并行任务同时运行(排队阈值),前者是策略开关,后者是资源容量限制 。
2 个赞
PARALLEL(n):我理想想用多少线程;
MAX_CONCURRENT(n):最多不许超过多少线程。
MAX_CONCURRENT是上限,不会强制一定要开到 n,只是不允许超过 n
PARALLEL 是期望的目标并行度,资源不足会收缩。
2 个赞
您的问题可能存在一些误解。根据OCR提取出的文本,似乎是在询问PARALLEL(N)和MAX_CONCURRENT(N)这两个参数的区别,但根据提供的文档片段来看,并没有直接提到MAX_CONCURRENT(N)这一特定参数。不过,我将尝试解答关于PARALLEL(N)以及与之相关的、可能您所指的另一个参数parallel_servers_target之间的区别。
并行度设置参数的区别
-
PARALLEL(N)- 用途:用于指定查询或操作(如创建物化视图日志、数据加载等)时的具体并行度。
-
例子:
- 在SQL语句中使用Hint来设定查询并行度:
SELECT /*+PARALLEL(8)*/ * FROM T1 WHERE user_id = 123456 AND create_time > DATE_SUB(NOW(), INTERVAL 1 DAY); - 设置表或索引的扫描并行度:
ALTER TABLE table_name PARALLEL 4; ALTER INDEX index_name PARALLEL 2; -- Oracle模式下 ALTER TABLE table_name ALTER INDEX index_name PARALLEL 2; -- MySQL模式下
- 在SQL语句中使用Hint来设定查询并行度:
- 作用范围:可以针对单个查询或者对特定对象(表/索引)的操作生效。
-
parallel_servers_target- 用途:定义了系统内同时处理并行执行任务的最大worker数量限制。如果请求的并行度加起来超过了这个值,则新的并行请求会被暂时挂起直至资源释放。
- 默认配置:默认值为0,在实际应用中会依据CPU数量自动计算确定一个合理的上限值。
-
配置示例:
SHOW VARIABLES LIKE '%paral%'; +-------------------------+-------+ | Variable_name | Value | +-------------------------+-------+ | parallel_servers_target | 4 | +-------------------------+-------+ 1 rows in set - 作用范围:是一个全局性的参数,影响整个数据库实例对于并行执行的支持能力。
总结
-
PARALLEL(N)主要用于具体指定某次操作或查询的并行度。 -
parallel_servers_target则用来控制整个系统层面能够支持的最大并行程度,确保不会因为过多的并行执行而导致资源耗尽。
希望这能帮助澄清这两个概念。如果有更具体的场景需求,请提供更多细节以便进一步分析。若MAX_CONCURRENT(N)指的是某个特别配置项且上述解释未能涵盖,请明确指出其来源或上下文,我将继续查找相关信息提供帮助。
具体信息可参考以下文档:
1 个赞
详细
666