OB使用并行对数据库的资源消耗大吗?一般能开多大

OB使用并行对数据库的资源消耗大吗?一般能开多大

4 个赞

一般TP系统是不会开的。临时手动执行一些比较耗时的操作(比如加索引)或者能控制并发的一些定时任务才会使用。

@论坛小助手

并行执行对OceanBase资源消耗的影响及并行度设置

根据文档中的信息,我们可以了解到OceanBase数据库支持SQL语句的并行执行,这可以显著提高查询性能。但是,这种性能提升是通过增加系统资源使用(如CPU和内存)来实现的。

  1. 资源消耗:并行执行会增加数据库的资源消耗,特别是CPU和内存。这是因为并行执行会同时启动多个工作线程处理同一个任务,从而加速任务完成的速度。然而,这意味着更多的计算资源会被占用。因此,在开启并行执行时需要考虑系统的整体负载情况,确保不会因为过度使用资源而影响其他应用程序或查询的性能。

  2. 最大并行度建议

    • 文档中提到,每条SQL语句的最大并行度(Degree of Parallelism, DOP)不应超过物理CPU数量的1.5倍。
    • 如果没有其他SQL语句并发执行的话,单条SQL语句的DOP可以设置为等于物理CPU的核心数。例如,如果服务器配备了32个物理CPU核心,则推荐设置/*+ PARALLEL(32) */作为该SQL语句的并行度提示。
  3. 如何设置Hint:要启用并行执行,可以在SQL语句中加入/*+ PARALLEL(N) */这样的提示,其中N表示希望使用的并行度。例如,对于一个拥有64个物理CPU核心的系统,如果你想要充分利用这些处理器进行某个查询,那么可以这样写:SELECT /*+ PARALLEL(64) */ * FROM your_table;

总之,虽然并行执行确实会带来较大的资源消耗,但通过合理配置并行度,可以使OceanBase数据库在处理大量数据时表现得更加高效。重要的是要根据实际硬件条件和业务需求来调整并行度,以达到最佳性能而不至于造成资源浪费或冲突。

参考文档提供了更多关于并行执行优化的信息。

详情请参考:

  1. 产品 FAQ
  2. memory_limit
  3. 数据库内存上限
  4. 列存 FAQ
  5. memory_limit_percentage
  6. 并行执行入门实践
1 个赞

我感觉这个主要看主机的资源大小呢,CPU和内存

1 个赞

回答的真详细。