问题描述
问题-我无法在版本12.1.0.2.0的可插拔数据库中获得任何并行执行,希望您能阐明我所缺少的内容。希望我提供了足够的信息来开始。
这几乎就像可插拔数据库没有 “启用” 并行性一样。
我已经将仅容器数据库迁移到具有一个可插拔db的数据库,并将应用程序表移动到可插拔数据库。两个数据库都是版本12.1.0.2.0。模式定义和数据是相同的,我用datapump移动了它们。
在仅容器数据库中,查询并行执行,没有问题。
我尝试更改会话以强制并行,我在表上设置了度数,我设置了并行提示。
我知道并行处理通常是正常工作的,因为我能够在根容器 (cdb $ root) 中并行运行查询。
表在TS字段上按范围划分,TS是主键 (TS,SITE,CUST) 的顶部,并且数据在整个分区中相当均匀地分布。
这几乎就像可插拔数据库没有 “启用” 并行性一样。
我已经将仅容器数据库迁移到具有一个可插拔db的数据库,并将应用程序表移动到可插拔数据库。两个数据库都是版本12.1.0.2.0。模式定义和数据是相同的,我用datapump移动了它们。
在仅容器数据库中,查询并行执行,没有问题。
我尝试更改会话以强制并行,我在表上设置了度数,我设置了并行提示。
我知道并行处理通常是正常工作的,因为我能够在根容器 (cdb $ root) 中并行运行查询。
表在TS字段上按范围划分,TS是主键 (TS,SITE,CUST) 的顶部,并且数据在整个分区中相当均匀地分布。
The table: Name Null? Type ----------------------------------------------------------------- -------- ------------------ TS NOT NULL NUMBER(15) SITE NOT NULL VARCHAR2(4) CUST NOT NULL NUMBER(15) RANK NUMBER(7) COUNT NUMBER(15) TABLE_NAME NUM_ROWS LAST_ANALYZED ------------------------------ ---------- --------------- CUST 678115973 19-JUL-17 PARTITION_NAME NUM_ROWS LAST_ANALYZED HIGH_VALUE -------------------- ---------- --------------- -------------------- CUST_170224 0 19-JUL-17 '1487980800' CUST_170225 20993324 19-JUL-17 '1488067200' CUST_170226 20933754 19-JUL-17 '1488153600' CUST_170227 21779830 19-JUL-17 '1488240000' CUST_170228 14059138 19-JUL-17 '1488326400' CUST_170301 22089144 19-JUL-17 '1488412800' CUST_170302 17144928 19-JUL-17 '1488499200' CUST_170303 22371898 19-JUL-17 '1488585600' CUST_170304 21484837 19-JUL-17 '1488672000' CUST_170305 21165207 19-JUL-17 '1488758400' CUST_170306 22140324 19-JUL-17 '1488844800' CUST_170307 22394525 19-JUL-17 '1488931200' CUST_170308 22349191 19-JUL-17 '1489017600' CUST_170309 22288298 19-JUL-17 '1489104000' CUST_170310 22571513 19-JUL-17 '1489190400' CUST_170311 23444140 19-JUL-17 '1489276800' CUST_170312 23272062 19-JUL-17 '1489363200' CUST_170313 23987001 19-JUL-17 '1489449600' CUST_170314 24089762 19-JUL-17 '1489536000' CUST_170315 25541106 19-JUL-17 '1489622400' CUST_170316 32651962 19-JUL-17 '1489708800' CUST_170317 32625644 19-JUL-17 '1489795200' CUST_170318 32349277 19-JUL-17 '1489881600' CUST_170319 32315020 19-JUL-17 '1489968000' CUST_170320 28686996 19-JUL-17 '1490054400' CUST_170321 22617558 19-JUL-17 '1490140800' CUST_170322 23008672 19-JUL-17 '1490227200' CUST_170323 23059973 19-JUL-17 '1490313600' CUST_170324 15197689 19-JUL-17 '1490400000' CUST_170325 21503200 19-JUL-17 '1490486400' CUST_170711 0 19-JUL-17 '1499817600' CUST_170712 0 19-JUL-17 '1499904000' CUST_170713 0 19-JUL-17 '1499990400' CUST_170714 0 19-JUL-17 '1500076800' CUST_170715 0 19-JUL-17 '1500163200' CUST_170716 0 19-JUL-17 '1500249600' CUST_501231 0 19-JUL-17 '2556144000' The query: select /*+ parallel(cust,32)*/ site, cust, sum(count) from voltron.cust where rank < '1000' group by site, cust order by site,sum(count); The execution plan on the container-only database: 73260 rows selected. Elapsed: 00:00:14.97 ------------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | Pstart| Pstop | TQ |IN-OUT| PQ Distrib | ------------------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | | | | 32072 (100)| | | | | | | | 1 | PX COORDINATOR | | | | | | | | | | | | | 2 | PX SEND QC (ORDER) | :TQ10002 | 118K| 1973K| | 32072 (2)| 00:00:02 | | | Q1,02 | P->S | QC (ORDER) | | 3 | SORT ORDER BY | | 118K| 1973K| 3837M| 32072 (2)| 00:00:02 | | | Q1,02 | PCWP | | | 4 | PX RECEIVE | | 118K| 1973K| | 32072 (2)| 00:00:02 | | | Q1,02 | PCWP | | | 5 | PX SEND RANGE | :TQ10001 | 118K| 1973K| | 32072 (2)| 00:00:02 | | | Q1,01 | P->P | RANGE | | 6 | HASH GROUP BY | | 118K| 1973K| 3837M| 32072 (2)| 00:00:02 | | | Q1,01 | PCWP | | | 7 | PX RECEIVE | | 118K| 1973K| | 32072 (2)| 00:00:02 | | | Q1,01 | PCWP | | | 8 | PX SEND HASH | :TQ10000 | 118K| 1973K| | 32072 (2)| 00:00:02 | | | Q1,00 | P->P | HASH | | 9 | HASH GROUP BY | | 118K| 1973K| 3837M| 32072 (2)| 00:00:02 | | | Q1,00 | PCWP | | | 10 | PX BLOCK ITERATOR | | 125M| 2030M| | 23882 (1)| 00:00:01 | 1 | 37 | Q1,00 | PCWC | | |* 11 | TABLE ACCESS FULL| CUST | 125M| 2030M| | 23882 (1)| 00:00:01 | 1 | 37 | Q1,00 | PCWP | | ------------------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 11 - access(:Z>=:Z AND :Z<=:Z) filter("RANK"<1000) The execution plan in the new pluggable database: 73260 rows selected. Elapsed: 00:01:58.97 ------------------------------------------------------------------------------------------------------ | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | Pstart| Pstop | ------------------------------------------------------------------------------------------------------ | 0 | SELECT STATEMENT | | | | | 1053K(100)| | | | | 1 | SORT ORDER BY | | 159K| 2644K| 2855M| 1053K (2)| 00:00:42 | | | | 2 | HASH GROUP BY | | 159K| 2644K| 2855M| 1053K (2)| 00:00:42 | | | | 3 | PARTITION RANGE ALL| | 93M| 1510M| | 688K (1)| 00:00:27 | 1 | 37 | |* 4 | TABLE ACCESS FULL | CUST | 93M| 1510M| | 688K (1)| 00:00:27 | 1 | 37 | ------------------------------------------------------------------------------------------------------ Predicate Information (identified by operation id): --------------------------------------------------- 4 - filter("RANK"<1000) Parallel parameters in the new database: NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ _parallel_syspls_obey_force boolean TRUE fast_start_parallel_rollback string LOW parallel_adaptive_multi_user boolean TRUE parallel_automatic_tuning boolean FALSE parallel_degree_level integer 100 parallel_degree_limit string CPU parallel_degree_policy string MANUAL parallel_execution_message_size integer 32768 parallel_force_local boolean FALSE parallel_instance_group string parallel_io_cap_enabled boolean FALSE parallel_max_servers integer 316 parallel_min_percent integer 0 parallel_min_servers integer 36 parallel_min_time_threshold string AUTO parallel_server boolean TRUE parallel_server_instances integer 1 parallel_servers_target integer 316 parallel_threads_per_cpu integer 2 recovery_parallelism integer 0 OSstats in the new database: Stat Name Value OS Stat ID ------------------------ ---------------- ---------- -- BUSY_TIME 19,989,738 2 FREE_MEMORY_BYTES 211,172,405,248 1011 GLOBAL_RECEIVE_SIZE_MAX 134,217,728 2007 GLOBAL_SEND_SIZE_MAX 134,217,728 2006 IDLE_TIME 1,071,129,175 1 INACTIVE_MEMORY_BYTES 24,064,081,920 1012 IOWAIT_TIME 66,910 5 LOAD 2 15 NICE_TIME 21 6 NUM_CPUS 72 0 NUM_CPU_CORES 36 16 NUM_CPU_SOCKETS 2 17 PHYSICAL_MEMORY_BYTES 540,663,746,560 1008 RSRC_MGR_CPU_WAIT_TIME 10,082 14 SWAP_FREE_BYTES 21,474,832,384 1013 SYS_TIME 3,278,369 4 TCP_RECEIVE_SIZE_DEFAULT 87,380 2004 TCP_RECEIVE_SIZE_MAX 134,217,728 2005 TCP_RECEIVE_SIZE_MIN 4,096 2003 TCP_SEND_SIZE_DEFAULT 65,536 2001 TCP_SEND_SIZE_MAX 134,217,728 2002 TCP_SEND_SIZE_MIN 4,096 2000 USER_TIME 16,704,548 3 VM_IN_BYTES 0 1009 VM_OUT_BYTES 0 1010
专家解答
检查这里是否有资源管理器限制
从DBA_CDB_RSRC_PLAN_DIRECTIVES中选择计划,配置文件,插拔 _ 数据库,并行 _ 服务器 _ 限制;
(该计划可以附加到配置文件或特定的可插拔文件中)
并且也许检查是否已在可插拔中设置了cpu_count以限制cpu消耗。
从DBA_CDB_RSRC_PLAN_DIRECTIVES中选择计划,配置文件,插拔 _ 数据库,并行 _ 服务器 _ 限制;
(该计划可以附加到配置文件或特定的可插拔文件中)
并且也许检查是否已在可插拔中设置了cpu_count以限制cpu消耗。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。