问题描述
嗨,ASKTOM团队,
我对并行性不是很好,所以对DW数据库有疑问。这些是我当前的设置:
这些都是默认级别,SPFILE中没有指定任何内容。这些表的度 = 2或4。一些较大的指数有degrees = DEFAULT。但我看到的是,即使没有任何提示,许多用户被分配168或190或更多的并行从属。这导致主要问题,因为CPU转到90% +。我想要做的是在数据库级别设置一个参数 (或参数),所以无论什么程度是表/索引或什么用户在提示中指定,任何用户的查询运行并行性,得到一个最大8个并行查询从属。有可能吗?
谢谢
我对并行性不是很好,所以对DW数据库有疑问。这些是我当前的设置:
parallel_adaptive_multi_user boolean TRUE parallel_automatic_tuning boolean FALSE parallel_degree_limit string CPU parallel_degree_policy string MANUAL parallel_execution_message_size integer 16384 parallel_force_local boolean FALSE parallel_instance_group string parallel_io_cap_enabled boolean FALSE parallel_max_servers integer 1120 parallel_min_percent integer 0 parallel_min_servers integer 0 parallel_min_time_threshold string AUTO parallel_server boolean TRUE parallel_server_instances integer 4 parallel_servers_target integer 448 parallel_threads_per_cpu integer 2
这些都是默认级别,SPFILE中没有指定任何内容。这些表的度 = 2或4。一些较大的指数有degrees = DEFAULT。但我看到的是,即使没有任何提示,许多用户被分配168或190或更多的并行从属。这导致主要问题,因为CPU转到90% +。我想要做的是在数据库级别设置一个参数 (或参数),所以无论什么程度是表/索引或什么用户在提示中指定,任何用户的查询运行并行性,得到一个最大8个并行查询从属。有可能吗?
谢谢
专家解答
查看平行 _ 程度 _ 限制。从文档中:
值
CPU
最大并行度受系统中cpu数量的限制。用于计算限制的公式是PARALLEL_THREADS_PER_CPU * CPU_COUNT * 可用实例数 (默认情况下,集群上所有打开的实例,但可以使用PARALLEL_INSTANCE_GROUP或服务规范进行约束)。这是默认的。
IO
优化器可以使用的最大并行度受到系统I/O容量的限制。该值是通过将总系统吞吐量除以每个进程的最大I/O带宽来计算的。您必须在系统上运行DBMS_RESOURCE_MANAGER.CALIBRATE_IO过程才能使用IO设置。此过程将计算总系统吞吐量和每个进程的最大I/O带宽。
整数
此参数的数字值指定当自动并行度处于活动状态时,优化器可以为SQL语句选择的最大并行度。仅当parallel_degre_policy设置为ADAPTIVE、AUTO或LIMITED时,才启用自动并行度。
值
CPU
最大并行度受系统中cpu数量的限制。用于计算限制的公式是PARALLEL_THREADS_PER_CPU * CPU_COUNT * 可用实例数 (默认情况下,集群上所有打开的实例,但可以使用PARALLEL_INSTANCE_GROUP或服务规范进行约束)。这是默认的。
IO
优化器可以使用的最大并行度受到系统I/O容量的限制。该值是通过将总系统吞吐量除以每个进程的最大I/O带宽来计算的。您必须在系统上运行DBMS_RESOURCE_MANAGER.CALIBRATE_IO过程才能使用IO设置。此过程将计算总系统吞吐量和每个进程的最大I/O带宽。
整数
此参数的数字值指定当自动并行度处于活动状态时,优化器可以为SQL语句选择的最大并行度。仅当parallel_degre_policy设置为ADAPTIVE、AUTO或LIMITED时,才启用自动并行度。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




