暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

可插拔数据库中的Oracle PQ处理

askTom 2017-07-20
315

问题描述

问题-我无法在版本12.1.0.2.0的可插拔数据库中获得任何并行执行,希望您能阐明我所缺少的内容。希望我提供了足够的信息来开始。

这几乎就像可插拔数据库没有 “启用” 并行性一样。

我已经将仅容器数据库迁移到具有一个可插拔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消耗。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论