Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

207

积分

1

好友

4

主题
1#
发表于 2016-8-10 17:11:37 | 查看: 4012| 回复: 11
有个查询,由3各子查询关联构成,第1、2个子查询只返回一行记录,第3个子查询没有记录,这样的3个子查询关联查询超过了10分钟还未执行完成;
收集hanganalyze报告,没有发现问题;
收集了ash报告发现都是CPU + Wait for CPU等待;
相关报告请查看附件。

服务器为虚拟机,配置了16g内存,给oracle12g;
配置了4个cpu;

判断性能瓶颈在CPU是否是准确的?请各位有劳帮忙看看,谢谢。

Archive.zip

6.99 KB, 下载次数: 1423

ash报告和hang分析

爱老婆,爱FM,爱音乐;挨踢,爱折腾,爱Oracle
2#
发表于 2016-8-11 15:08:48

select 1
  from (select SYS_INT_ID, NE_DN
          from zjdxlte.tmp_cm_disc_subnet_info
         where type_dn = 'SUBNETWORK'
           and view_name = 'OMC'
           and invoke_id = 20065) tmp,
       (select SM_COLLECTOR_DEPLOY.SYS_INT_ID "ID",
               SM_COLLECTOR_DEPLOY.NE_DN      "KEY"
          from zjdxlte.SM_COLLECTOR_DEPLOY, zjdxlte.OBJECTS_EXS
         where (SM_COLLECTOR_DEPLOY.SYS_INT_ID = OBJECTS_EXS.SYS_INT_ID)
           and (SM_COLLECTOR_DEPLOY.NE_DN = OBJECTS_EXS.NE_DN)
           and OBJECTS_EXS.NE_CLASS = 6) "subnetwork",
       (select C_LTE_ANT_INFO.NE_DN      "KEY",
               C_LTE_ANT_INFO.SYS_INT_ID "ID",
               C_LTE_ANT_INFO.SUBNET_ID  "SUBNET_ID",
               C_LTE_ANT_INFO.NE_NAME    "NAME"
          from zjdxlte.C_LTE_ANT_INFO, zjdxlte.OBJECTS_EXS
         where (C_LTE_ANT_INFO.SYS_INT_ID = OBJECTS_EXS.SYS_INT_ID)
           and (C_LTE_ANT_INFO.NE_DN = OBJECTS_EXS.NE_DN)
           and C_LTE_ANT_INFO.NE_CLASS = 355) "ant"
where tmp.SYS_INT_ID = "subnetwork".ID
   and "subnetwork".ID = "ant".SUBNET_ID



执行 语句 给出结果

  1. set linesize 300 pagesize 3000
  2. set long 99999
  3.   SELECT *
  4.     FROM (SELECT '1.v$sql'||'实例号:'||GV$SQL.inst_id source,
  5.                  SQL_ID,
  6.                  plan_hash_value,
  7.                  TO_CHAR (FIRST_LOAD_TIME) begin_time,
  8.                  '在cursor cache中' end_time,
  9.                  executions "No. of exec",
  10.                  (buffer_gets / executions) "LIO/exec",
  11.                  (cpu_time / executions / 1000000) "CPUTIM/exec",
  12.                  (elapsed_time / executions / 1000000) "ETIME/exec",
  13.                  (disk_reads / executions) "PIO/exec",
  14.                  (ROWS_PROCESSED / executions) "ROWs/exec"
  15.             FROM Gv$SQL
  16.            WHERE sql_id = '6y377cz3r7t39'
  17.           UNION ALL
  18.           SELECT '2.sqltuning set' source,
  19.                  sql_id,
  20.                  plan_hash_value,
  21.                  'JUST SQLSET NO DATE' begin_time,
  22.                  'JUST SQLSET NO DATE' end_time,
  23.                  EXECUTIONS "No. of exec",
  24.                  (buffer_gets / executions) "LIO/exec",
  25.                  (cpu_time / executions / 1000000) "CPUTIM/exec",
  26.                  (elapsed_time / executions / 1000000) "ETIME/exec",
  27.                  (disk_reads / executions) "PIO/exec",
  28.                  (ROWS_PROCESSED / executions) "ROWs/exec"
  29.             FROM dba_sqlset_statements
  30.            WHERE SQL_ID = '6y377cz3r7t39'
  31.           UNION ALL
  32.           SELECT '3.dba_advisor_sqlstats' source,
  33.                  sql_id,
  34.                  plan_hash_value,
  35.                  'JUST SQLSET NO DATE' begin_time,
  36.                  'JUST SQLSET NO DATE' end_time,
  37.                  EXECUTIONS "No. of exec",
  38.                  (buffer_gets / executions) "LIO/exec",
  39.                  (cpu_time / executions / 1000000) "CPUTIM/exec",
  40.                  (elapsed_time / executions / 1000000) "ETIME/exec",
  41.                  (disk_reads / executions) "PIO/exec",
  42.                  (ROWS_PROCESSED / executions) "ROWs/exec"
  43.             FROM dba_sqlset_statements
  44.            WHERE SQL_ID = '6y377cz3r7t39'
  45.           UNION ALL
  46.           SELECT DISTINCT
  47.                  '4.dba_hist_sqlstat' || '实例号:' || SQL.INSTANCE_NUMBER
  48.                     source,
  49.                  sql_id,
  50.                  PLAN_HASH_VALUE,
  51.                  TO_CHAR (s.BEGIN_INTERVAL_TIME ,'YYYY-MM-DD hh24:mi:ss') begin_time,
  52.                  TO_CHAR (s.END_INTERVAL_TIME,'YYYY-MM-DD hh24:mi:ss') end_time,
  53.                  SQL.executions_delta,
  54.                  SQL.buffer_gets_delta
  55.                  / DECODE (NVL (SQL.executions_delta, 0),
  56.                            0, 1,
  57.                            SQL.executions_delta)
  58.                     "LIO/exec",
  59.                  (SQL.cpu_time_delta / 1000000)
  60.                  / DECODE (NVL (SQL.executions_delta, 0),
  61.                            0, 1,
  62.                            SQL.executions_delta)
  63.                     "CPUTIM/exec",
  64.                  (SQL.elapsed_time_delta / 1000000)
  65.                  / DECODE (NVL (SQL.executions_delta, 0),
  66.                            0, 1,
  67.                            SQL.executions_delta)
  68.                     "ETIME/exec",
  69.                  SQL.DISK_READS_DELTA
  70.                  / DECODE (NVL (SQL.executions_delta, 0),
  71.                            0, 1,
  72.                            SQL.executions_delta)
  73.                     "PIO/exec",
  74.                  SQL.ROWS_PROCESSED_DELTA
  75.                  / DECODE (NVL (SQL.executions_delta, 0),
  76.                            0, 1,
  77.                            SQL.executions_delta)
  78.                     "ROWs/exec"
  79.             FROM dba_hist_sqlstat SQL, dba_hist_snapshot s
  80.            WHERE     SQL.INSTANCE_NUMBER = s.INSTANCE_NUMBER
  81.                  AND SQL.dbid = (SELECT dbid FROM v$database)
  82.                  AND s.snap_id = SQL.snap_id
  83.                  AND sql_id IN ('6y377cz3r7t39'))
  84. ORDER BY source, begin_time DESC;



  85. @?/rdbms/admin/sqltrpt
  86. 6y377cz3r7t39

复制代码

回复 只看该作者 道具 举报

3#
发表于 2016-8-11 16:44:10
谢谢刘老大,内容有点多,分开贴;

查询结果如下
  1. SOURCE                                                            SQL_ID        PLAN_HASH_VALUE BEGIN_TIME                             END_TIME            No. of exec   LIO/exec CPUTIM/exec ETIME/exec   PIO/exec  ROWs/exec
  2. ----------------------------------------------------------------- ------------- --------------- -------------------------------------- ------------------- ----------- ---------- ----------- ---------- ---------- ----------
  3. 1.v$sql实例号:1                                                   6y377cz3r7t39      4075299578 2016-08-10/16:08:11                    在cursor cache中              2   55170505  984.968762 986.533411        0          0
  4. 1.v$sql实例号:1                                                   6y377cz3r7t39       417863781 2016-08-10/16:08:11                    在cursor cache中              1      42585     .082988  .085014          0          0
  5. 4.dba_hist_sqlstat实例号:1                                        6y377cz3r7t39      4075299578 2016-08-10 16:00:22                    2016-08-10 17:00:24           2   55170505  984.968762 986.533411        0          0
复制代码

回复 只看该作者 道具 举报

4#
发表于 2016-8-11 16:44:57
报告结果如下
  1. SQL> @?/rdbms/admin/sqltrpt

  2. 15 Most expensive SQL in the cursor cache
  3. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  4. SQL_ID           ELAPSED SQL_TEXT_FRAGMENT
  5. ------------- ---------- -------------------------------------------------------
  6. fnf9kt73sn6zb   2,250.20 insert into OBJECTS_EXS("ROOM","PARENT_INT_ID","OMC_ID"
  7. 9t96jhwcstp48   2,180.52 update C_LTE_ENB_INFO a                       set (a.la
  8. gct9ajpcqu339   2,119.77 insert into tmp_cm_disc_subnet_info(VIEW_NAME,LAYER, TY
  9. 6y377cz3r7t39   1,973.15 select  1     from (select SYS_INT_ID, NE_DN
  10. 70mzhfyfvkw1q   1,809.89 select count(*) from (   select   aa."ROOM",          a
  11. fqqyghduagzuw   1,751.34 insert into   fm_alactive(application_dn,notification_i
  12. dbd624p9f4nxk   1,577.17 delete from fm_alactive   where         application_dn
  13. 4vs91dcv7u1p6   1,152.10 insert into sys.aud$( sessionid,entryid,statement,ntime
  14. b6usrg82hwsa3   1,151.66 call dbms_stats.gather_database_stats_job_proc (  )
  15. gy3ks019phgsh   1,109.10 insert into OBJECTS_EXS("ROOM","PARENT_INT_ID","OMC_ID"
  16. cmuczt5vmvfgw   1,103.11 BEGIN PKG_PRE_LTE_CM.CM_PRE; END;
  17. 1341cua5s6wqt   1,041.97 BEGIN pkg_fm_col.normal_alarm(:1,:2); END;
  18. fjz8x58hjrtyj     900.37 update C_LTE_ENB_INFO a    set (a.last_modified) = (sel
  19. csjujdu0pyn8f     860.32 select SEQ_FM_AFC.nextval from dual
  20. 6px9x82t1v1j2     680.69 update OBJECTS_EXS a    set (a.last_modified) = (select

  21. 15 Most expensive SQL in the workload repository
  22. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  23. SQL_ID           ELAPSED SQL_TEXT_FRAGMENT
  24. ------------- ---------- --------------------------------------------------------------------------------------------------------------
  25. bwpn35frx9r6x  15,753.08 insert into CM_SUBNET_INFO_BAK(VIEW_NAME,LAYER, TYPE_DN
  26. cc3c5p9nk1qsx   7,903.32 UPDATE CM_SUBNET_INFO_BAK X SET (PARENT_DN_STRING,DN_ST
  27. 8h1dud91sbbhd   7,885.11 UPDATE CM_SUBNET_INFO_BAK T SET CHILD_NUM = (SELECT COU
  28. cvy7zdmqj6c8z   7,875.10 update C_LTE_ANT_INFO a set(a.last_modified) = (select
  29. 8bz802bgsx785   7,875.02 update C_LTE_ANT_INFO a set(a.last_modified) = (select
  30. cxquv2a3r4m8j   7,875.02 update C_LTE_ANT_INFO a set(a.last_modified) = (select
  31. fudkyst20pd0p   7,875.02 update C_LTE_ANT_INFO a set(a.last_modified) = (select
  32. 1ndfj53wgmnc1   7,875.02 update C_LTE_ANT_INFO a set(a.last_modified) = (select
  33. g0z3pkym0ty6d   2,835.72 update C_LTE_ANT_INFO a     set (a.last_modified) = (se
  34. 9t96jhwcstp48   2,685.96 update C_LTE_ENB_INFO a                       set (a.la
  35. 7s2nby8mrf6w8   2,327.81 insert into OBJECTS_EXS("ROOM","PARENT_INT_ID","OMC_ID"
  36. fnf9kt73sn6zb   2,250.20 insert into OBJECTS_EXS("ROOM","PARENT_INT_ID","OMC_ID"
  37. gct9ajpcqu339   2,119.77 insert into tmp_cm_disc_subnet_info(VIEW_NAME,LAYER, TY
  38. 6y377cz3r7t39   1,973.07 select  1     from (select SYS_INT_ID, NE_DN
  39. 70mzhfyfvkw1q   1,809.89 select count(*) from (   select   aa."ROOM",          a

  40. Specify the Sql id
  41. ~~~~~~~~~~~~~~~~~~
  42. Enter value for sqlid: 6y377cz3r7t39

  43. Sql Id specified: 6y377cz3r7t39

  44. Tune the sql
  45. ~~~~~~~~~~~~

  46. GENERAL INFORMATION SECTION
  47. -------------------------------------------------------------------------------
  48. Tuning Task Name   : TASK_2448
  49. Tuning Task Owner  : SYS
  50. Workload Type      : Single SQL Statement
  51. Scope              : COMPREHENSIVE
  52. Time Limit(seconds): 1800
  53. Completion Status  : COMPLETED
  54. Started at         : 08/11/2016 16:41:40
  55. Completed at       : 08/11/2016 16:41:48

  56. -------------------------------------------------------------------------------
  57. Schema Name: SYS
  58. SQL ID     : 6y377cz3r7t39
  59. SQL Text   : select  1
  60.                  from (select SYS_INT_ID, NE_DN
  61.                          from zjdxlte.tmp_cm_disc_subnet_info
  62.                         where type_dn = 'SUBNETWORK'
  63.                           and view_name = 'OMC'
  64.                           and invoke_id = 20065) tmp,
  65.                       (select SM_COLLECTOR_DEPLOY.SYS_INT_ID "ID",
  66.                               SM_COLLECTOR_DEPLOY.NE_DN      "KEY"
  67.                          from zjdxlte.SM_COLLECTOR_DEPLOY,
  68.              zjdxlte.OBJECTS_EXS
  69.                         where (SM_COLLECTOR_DEPLOY.SYS_INT_ID =
  70.              OBJECTS_EXS.SYS_INT_ID)
  71.                           and (SM_COLLECTOR_DEPLOY.NE_DN = OBJECTS_EXS.NE_DN)
  72.                           and OBJECTS_EXS.NE_CLASS = 6) "subnetwork",
  73.                       (select C_LTE_ANT_INFO.NE_DN      "KEY",
  74.                               C_LTE_ANT_INFO.SYS_INT_ID "ID",
  75.                               C_LTE_ANT_INFO.SUBNET_ID  "SUBNET_ID",
  76.                               C_LTE_ANT_INFO.NE_NAME    "NAME"
  77.                          from zjdxlte.C_LTE_ANT_INFO, zjdxlte.OBJECTS_EXS
  78.                         where (C_LTE_ANT_INFO.SYS_INT_ID =
  79.              OBJECTS_EXS.SYS_INT_ID)
  80.                           and (C_LTE_ANT_INFO.NE_DN = OBJECTS_EXS.NE_DN)
  81.                           and C_LTE_ANT_INFO.NE_CLASS = 355) "ant"
  82.                 where tmp.SYS_INT_ID = "subnetwork".ID
  83.                   and "subnetwork".ID = "ant".SUBNET_ID

  84. -------------------------------------------------------------------------------
  85. FINDINGS SECTION (4 findings)
  86. -------------------------------------------------------------------------------
复制代码

回复 只看该作者 道具 举报

5#
发表于 2016-8-11 16:45:16
  1. 1- Statistics Finding
  2. ---------------------
  3.   Optimizer statistics for table "ZJDXLTE"."TMP_CM_DISC_SUBNET_INFO" are stale.

  4.   Recommendation
  5.   --------------
  6.   - Consider collecting optimizer statistics for this table and its indices.
  7.     execute dbms_stats.gather_table_stats(ownname => 'ZJDXLTE', tabname =>
  8.             'TMP_CM_DISC_SUBNET_INFO', estimate_percent =>
  9.             DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt => 'FOR ALL COLUMNS SIZE
  10.             AUTO', cascade => TRUE);

  11.   Rationale
  12.   ---------
  13.     The optimizer requires up-to-date statistics for the table and its indices
  14.     in order to select a good execution plan.

  15. 2- Index Finding (see explain plans section below)
  16. --------------------------------------------------
  17.   The execution plan of this statement can be improved by creating one or more
  18.   indices.

  19.   Recommendation (estimated benefit: 85.85%)
  20.   ------------------------------------------
  21.   - Consider running the Access Advisor to improve the physical schema design
  22.     or creating the recommended index.  If you choose to create the
  23.     recommended index, consider dropping the index
  24.     "ZJDXLTE"."IDX_TMP_SUBINFO_DNVIEW" because it is a prefix of the
  25.     recommended index.
  26.     create index ZJDXLTE.IDX$$_09900001 on
  27.     ZJDXLTE.TMP_CM_DISC_SUBNET_INFO("TYPE_DN","VIEW_NAME","INVOKE_ID","SYS_INT_
  28.     ID");

  29.   - Consider running the Access Advisor to improve the physical schema design
  30.     or creating the recommended index.
  31.     create index ZJDXLTE.IDX$$_09900002 on
  32.     ZJDXLTE.OBJECTS_EXS("SYS_INT_ID","NE_DN");

  33.   - Consider running the Access Advisor to improve the physical schema design
  34.     or creating the recommended index.
  35.     create index ZJDXLTE.IDX$$_09900003 on
  36.     ZJDXLTE.OBJECTS_EXS("NE_CLASS","SYS_INT_ID","NE_DN");

  37.   - Consider running the Access Advisor to improve the physical schema design
  38.     or creating the recommended index.
  39.     create index ZJDXLTE.IDX$$_09900004 on
  40.     ZJDXLTE.SM_COLLECTOR_DEPLOY("SYS_INT_ID","NE_DN");

  41.   Rationale
  42.   ---------
  43.     Creating the recommended indices significantly improves the execution plan
  44.     of this statement. However, it might be preferable to run "Access Advisor"
  45.     using a representative SQL workload as opposed to a single statement. This
  46.     will allow to get comprehensive index recommendations which takes into
  47.     account index maintenance overhead and additional space consumption.
复制代码

回复 只看该作者 道具 举报

6#
发表于 2016-8-11 16:45:37
  1. 3- Restructure SQL finding (see plan 1 in explain plans section)
  2. ----------------------------------------------------------------
  3.   An expensive cartesian product operation was found at line ID 4 of the
  4.   execution plan.

  5.   Recommendation
  6.   --------------
  7.   - Consider removing the disconnected table or view from this statement or
  8.     add a join condition which refers to it.

  9. 4- Alternative Plan Finding
  10. ---------------------------
  11.   Some alternative execution plans for this statement were found by searching
  12.   the system's real-time and historical performance data.

  13.   The following table lists these plans ranked by their average elapsed time.
  14.   See section "ALTERNATIVE PLANS SECTION" for detailed information on each
  15.   plan.

  16.   id plan hash  last seen            elapsed (s)  origin          note
  17.   -- ---------- -------------------- ------------ --------------- ----------------
  18.    1  417863781  2016-08-11/09:58:56        0.085 Cursor Cache    original plan
  19.    2 4075299578  2016-08-10/16:08:11      986.533 Cursor Cache

  20.   Information
  21.   -----------
  22.   - The Original Plan appears to have the best performance, based on the
  23.     elapsed time per execution.  However, if you know that one alternative
  24.     plan is better than the Original Plan, you can create a SQL plan baseline
  25.     for it. This will instruct the Oracle optimizer to pick it over any other
  26.     choices in the future.
  27.     execute dbms_sqltune.create_sql_plan_baseline(task_name => 'TASK_2448',
  28.             owner_name => 'SYS', plan_hash_value => xxxxxxxx);

  29. -------------------------------------------------------------------------------
  30. EXPLAIN PLANS SECTION
  31. -------------------------------------------------------------------------------
复制代码

回复 只看该作者 道具 举报

7#
发表于 2016-8-11 16:46:23
  1. 1- Original
  2. -----------
  3. Plan hash value: 417863781

  4. ------------------------------------------------------------------------------------------------------------
  5. | Id  | Operation                        | Name                    | Rows  | Bytes | Cost (%CPU)| Time     |
  6. ------------------------------------------------------------------------------------------------------------
  7. |   0 | SELECT STATEMENT                 |                         |     1 |   176 |   482   (1)| 00:00:06 |
  8. |   1 |  NESTED LOOPS                    |                         |     1 |   176 |   482   (1)| 00:00:06 |
  9. |   2 |   NESTED LOOPS                   |                         |     1 |   176 |   482   (1)| 00:00:06 |
  10. |*  3 |    HASH JOIN                     |                         |     1 |   131 |   480   (1)| 00:00:06 |
  11. |   4 |     MERGE JOIN CARTESIAN         |                         |     1 |   123 |   477   (1)| 00:00:06 |
  12. |   5 |      NESTED LOOPS                |                         |     1 |    82 |   474   (1)| 00:00:06 |
  13. |   6 |       NESTED LOOPS               |                         | 30635 |    82 |   474   (1)| 00:00:06 |
  14. |   7 |        VIEW                      | index$_join$_008        | 30635 |  1226K|   473   (1)| 00:00:06 |
  15. |*  8 |         HASH JOIN                |                         |       |       |            |          |
  16. |   9 |          INDEX FAST FULL SCAN    | PK_OBJECTS_EXS_ID       | 30635 |  1226K|   121   (0)| 00:00:02 |
  17. |  10 |          INDEX FAST FULL SCAN    | DN#OBJECTS_EXS          | 30635 |  1226K|   469   (0)| 00:00:06 |
  18. |* 11 |        INDEX UNIQUE SCAN         | PK_C_LTE_ANT_INFO_ID    |     1 |       |     0   (0)| 00:00:01 |
  19. |* 12 |       TABLE ACCESS BY INDEX ROWID| C_LTE_ANT_INFO          |     1 |    41 |     0   (0)| 00:00:01 |
  20. |  13 |      BUFFER SORT                 |                         |     1 |    41 |   477   (1)| 00:00:06 |
  21. |* 14 |       TABLE ACCESS BY INDEX ROWID| TMP_CM_DISC_SUBNET_INFO |     1 |    41 |     3   (0)| 00:00:01 |
  22. |* 15 |        INDEX RANGE SCAN          | IDX_TMP_SUBINFO_IID     |     1 |       |     2   (0)| 00:00:01 |
  23. |  16 |     TABLE ACCESS FULL            | SM_COLLECTOR_DEPLOY     |     1 |     8 |     3   (0)| 00:00:01 |
  24. |* 17 |    INDEX UNIQUE SCAN             | PK_OBJECTS_EXS_ID       |     1 |       |     1   (0)| 00:00:01 |
  25. |* 18 |   TABLE ACCESS BY INDEX ROWID    | OBJECTS_EXS             |     1 |    45 |     2   (0)| 00:00:01 |
  26. ------------------------------------------------------------------------------------------------------------

  27. Predicate Information (identified by operation id):
  28. ---------------------------------------------------

  29.    3 - access("SYS_INT_ID"="SM_COLLECTOR_DEPLOY"."SYS_INT_ID" AND
  30.               "SM_COLLECTOR_DEPLOY"."SYS_INT_ID"="C_LTE_ANT_INFO"."SUBNET_ID")
  31.    8 - access(ROWID=ROWID)
  32.   11 - access("C_LTE_ANT_INFO"."SYS_INT_ID"="OBJECTS_EXS"."SYS_INT_ID")
  33.   12 - filter("C_LTE_ANT_INFO"."NE_CLASS"=355 AND "C_LTE_ANT_INFO"."NE_DN"="OBJECTS_EXS"."NE_DN")
  34.   14 - filter("TYPE_DN"='SUBNETWORK' AND "VIEW_NAME"='OMC')
  35.   15 - access("INVOKE_ID"=20065)
  36.   17 - access("SM_COLLECTOR_DEPLOY"."SYS_INT_ID"="OBJECTS_EXS"."SYS_INT_ID")
  37.   18 - filter("OBJECTS_EXS"."NE_CLASS"=6 AND "SM_COLLECTOR_DEPLOY"."NE_DN"="OBJECTS_EXS"."NE_DN")

  38. 2- Using New Indices
  39. --------------------
  40. Plan hash value: 939202290

  41. -------------------------------------------------------------------------------------------------------
  42. | Id  | Operation                      | Name                 | Rows  | Bytes | Cost (%CPU)| Time     |
  43. -------------------------------------------------------------------------------------------------------
  44. |   0 | SELECT STATEMENT               |                      |     1 |   176 |    68   (0)| 00:00:01 |
  45. |   1 |  NESTED LOOPS                  |                      |     1 |   176 |    68   (0)| 00:00:01 |
  46. |   2 |   MERGE JOIN CARTESIAN         |                      |     1 |   168 |    68   (0)| 00:00:01 |
  47. |   3 |    NESTED LOOPS                |                      |     1 |   123 |    66   (0)| 00:00:01 |
  48. |   4 |     NESTED LOOPS               |                      |  1423 |   123 |    66   (0)| 00:00:01 |
  49. |   5 |      MERGE JOIN CARTESIAN      |                      |  1423 |   113K|    66   (0)| 00:00:01 |
  50. |*  6 |       INDEX RANGE SCAN         | IDX$$_09900001       |     1 |    41 |     2   (0)| 00:00:01 |
  51. |   7 |       BUFFER SORT              |                      | 30635 |  1226K|    64   (0)| 00:00:01 |
  52. |   8 |        INDEX FAST FULL SCAN    | IDX$$_09900002       | 30635 |  1226K|    64   (0)| 00:00:01 |
  53. |*  9 |      INDEX UNIQUE SCAN         | PK_C_LTE_ANT_INFO_ID |     1 |       |     0   (0)| 00:00:01 |
  54. |* 10 |     TABLE ACCESS BY INDEX ROWID| C_LTE_ANT_INFO       |     1 |    41 |     0   (0)| 00:00:01 |
  55. |  11 |    BUFFER SORT                 |                      |     5 |   225 |    68   (0)| 00:00:01 |
  56. |* 12 |     INDEX RANGE SCAN           | IDX$$_09900003       |     5 |   225 |     2   (0)| 00:00:01 |
  57. |* 13 |   INDEX RANGE SCAN             | IDX$$_09900004       |     1 |     8 |     0   (0)| 00:00:01 |
  58. -------------------------------------------------------------------------------------------------------

  59. Predicate Information (identified by operation id):
  60. ---------------------------------------------------

  61.    6 - access("TYPE_DN"='SUBNETWORK' AND "VIEW_NAME"='OMC' AND "INVOKE_ID"=20065)
  62.    9 - access("C_LTE_ANT_INFO"."SYS_INT_ID"="OBJECTS_EXS"."SYS_INT_ID")
  63.   10 - filter("C_LTE_ANT_INFO"."NE_CLASS"=355 AND
  64.               "C_LTE_ANT_INFO"."NE_DN"="OBJECTS_EXS"."NE_DN")
  65.   12 - access("OBJECTS_EXS"."NE_CLASS"=6)
  66.   13 - access("SM_COLLECTOR_DEPLOY"."SYS_INT_ID"="OBJECTS_EXS"."SYS_INT_ID" AND
  67.               "SM_COLLECTOR_DEPLOY"."NE_DN"="OBJECTS_EXS"."NE_DN")
  68.        filter("SYS_INT_ID"="SM_COLLECTOR_DEPLOY"."SYS_INT_ID" AND
  69.               "SM_COLLECTOR_DEPLOY"."SYS_INT_ID"="C_LTE_ANT_INFO"."SUBNET_ID")

  70. -------------------------------------------------------------------------------
  71. ALTERNATIVE PLANS SECTION
  72. -------------------------------------------------------------------------------
复制代码

回复 只看该作者 道具 举报

8#
发表于 2016-8-11 16:46:50
  1. Plan 2
  2. ------

  3.   Plan Origin                 :Cursor Cache
  4.   Plan Hash Value             :4075299578
  5.   Executions                  :2
  6.   Elapsed Time                :986.533 sec
  7.   CPU Time                    :984.969 sec
  8.   Buffer Gets                 :55170505
  9.   Disk Reads                  :0
  10.   Disk Writes                 :0

  11. Notes:
  12.   1. Statistics shown are averaged over multiple executions.

  13. ------------------------------------------------------------------------------------------------------------
  14. | Id  | Operation                        | Name                    | Rows  | Bytes | Cost (%CPU)| Time     |
  15. ------------------------------------------------------------------------------------------------------------
  16. |   0 | SELECT STATEMENT                 |                         |     1 |   176 |   326K  (1)| 01:05:15 |
  17. |   1 |  NESTED LOOPS                    |                         |     1 |   176 |   326K  (1)| 01:05:15 |
  18. |   2 |   NESTED LOOPS                   |                         |  4935 |   176 |   326K  (1)| 01:05:15 |
  19. |   3 |    NESTED LOOPS                  |                         |  4935 |   650K|   321K  (1)| 01:04:16 |
  20. |*  4 |     HASH JOIN                    |                         |   106K|  9753K|  2469   (1)| 00:00:30 |
  21. |   5 |      NESTED LOOPS                |                         |     1 |    53 |     5   (0)| 00:00:01 |
  22. |   6 |       NESTED LOOPS               |                         |     1 |    53 |     5   (0)| 00:00:01 |
  23. |   7 |        TABLE ACCESS FULL         | SM_COLLECTOR_DEPLOY     |     1 |     8 |     3   (0)| 00:00:01 |
  24. |*  8 |        INDEX UNIQUE SCAN         | PK_OBJECTS_EXS_ID       |     1 |       |     1   (0)| 00:00:01 |
  25. |*  9 |       TABLE ACCESS BY INDEX ROWID| OBJECTS_EXS             |     1 |    45 |     2   (0)| 00:00:01 |
  26. |* 10 |      TABLE ACCESS FULL           | C_LTE_ANT_INFO          |   121K|  4869K|  2464   (1)| 00:00:30 |
  27. |* 11 |     TABLE ACCESS BY INDEX ROWID  | TMP_CM_DISC_SUBNET_INFO |     1 |    41 |     3   (0)| 00:00:01 |
  28. |* 12 |      INDEX RANGE SCAN            | IDX_TMP_SUBINFO_IID     |     1 |       |     2   (0)| 00:00:01 |
  29. |* 13 |    INDEX UNIQUE SCAN             | PK_OBJECTS_EXS_ID       |     1 |       |     1   (0)| 00:00:01 |
  30. |* 14 |   TABLE ACCESS BY INDEX ROWID    | OBJECTS_EXS             |     1 |    41 |     1   (0)| 00:00:01 |
  31. ------------------------------------------------------------------------------------------------------------

  32. Predicate Information (identified by operation id):
  33. ---------------------------------------------------

  34.    4 - access("SM_COLLECTOR_DEPLOY"."SYS_INT_ID"="C_LTE_ANT_INFO"."SUBNET_ID")
  35.    8 - access("SM_COLLECTOR_DEPLOY"."SYS_INT_ID"="OBJECTS_EXS"."SYS_INT_ID")
  36.    9 - filter("OBJECTS_EXS"."NE_CLASS"=6 AND "SM_COLLECTOR_DEPLOY"."NE_DN"="OBJECTS_EXS"."NE_DN")
  37.   10 - filter("C_LTE_ANT_INFO"."NE_CLASS"=355)
  38.   11 - filter("TYPE_DN"='SUBNETWORK' AND "VIEW_NAME"='OMC' AND
  39.               "SYS_INT_ID"="SM_COLLECTOR_DEPLOY"."SYS_INT_ID")
  40.   12 - access("INVOKE_ID"=20065)
  41.   13 - access("C_LTE_ANT_INFO"."SYS_INT_ID"="OBJECTS_EXS"."SYS_INT_ID")
  42.   14 - filter("C_LTE_ANT_INFO"."NE_DN"="OBJECTS_EXS"."NE_DN")

  43. Plan 1
  44. ------

  45.   Plan Origin                 :Cursor Cache
  46.   Plan Hash Value             :417863781
  47.   Executions                  :1
  48.   Elapsed Time                :0.085 sec
  49.   CPU Time                    :0.083 sec
  50.   Buffer Gets                 :42585
  51.   Disk Reads                  :0
  52.   Disk Writes                 :0

  53. Notes:
  54.   1. Statistics shown are averaged over multiple executions.
  55.   2. The plan matches the original plan.

  56. ------------------------------------------------------------------------------------------------------------
  57. | Id  | Operation                        | Name                    | Rows  | Bytes | Cost (%CPU)| Time     |
  58. ------------------------------------------------------------------------------------------------------------
  59. |   0 | SELECT STATEMENT                 |                         |     1 |   176 |   482   (1)| 00:00:06 |
  60. |   1 |  NESTED LOOPS                    |                         |     1 |   176 |   482   (1)| 00:00:06 |
  61. |   2 |   NESTED LOOPS                   |                         |     1 |   176 |   482   (1)| 00:00:06 |
  62. |*  3 |    HASH JOIN                     |                         |     1 |   131 |   480   (1)| 00:00:06 |
  63. |   4 |     MERGE JOIN CARTESIAN         |                         |     1 |   123 |   477   (1)| 00:00:06 |
  64. |   5 |      NESTED LOOPS                |                         |     1 |    82 |   474   (1)| 00:00:06 |
  65. |   6 |       NESTED LOOPS               |                         | 30635 |    82 |   474   (1)| 00:00:06 |
  66. |   7 |        VIEW                      | index$_join$_008        | 30635 |  1226K|   473   (1)| 00:00:06 |
  67. |*  8 |         HASH JOIN                |                         |       |       |            |          |
  68. |   9 |          INDEX FAST FULL SCAN    | PK_OBJECTS_EXS_ID       | 30635 |  1226K|   121   (0)| 00:00:02 |
  69. |  10 |          INDEX FAST FULL SCAN    | DN#OBJECTS_EXS          | 30635 |  1226K|   469   (0)| 00:00:06 |
  70. |* 11 |        INDEX UNIQUE SCAN         | PK_C_LTE_ANT_INFO_ID    |     1 |       |     0   (0)| 00:00:01 |
  71. |* 12 |       TABLE ACCESS BY INDEX ROWID| C_LTE_ANT_INFO          |     1 |    41 |     0   (0)| 00:00:01 |
  72. |  13 |      BUFFER SORT                 |                         |     1 |    41 |   477   (1)| 00:00:06 |
  73. |* 14 |       TABLE ACCESS BY INDEX ROWID| TMP_CM_DISC_SUBNET_INFO |     1 |    41 |     3   (0)| 00:00:01 |
  74. |* 15 |        INDEX RANGE SCAN          | IDX_TMP_SUBINFO_IID     |     1 |       |     2   (0)| 00:00:01 |
  75. |  16 |     TABLE ACCESS FULL            | SM_COLLECTOR_DEPLOY     |     1 |     8 |     3   (0)| 00:00:01 |
  76. |* 17 |    INDEX UNIQUE SCAN             | PK_OBJECTS_EXS_ID       |     1 |       |     1   (0)| 00:00:01 |
  77. |* 18 |   TABLE ACCESS BY INDEX ROWID    | OBJECTS_EXS             |     1 |    45 |     2   (0)| 00:00:01 |
  78. ------------------------------------------------------------------------------------------------------------

  79. Predicate Information (identified by operation id):
  80. ---------------------------------------------------

  81.    3 - access("SYS_INT_ID"="SM_COLLECTOR_DEPLOY"."SYS_INT_ID" AND
  82.               "SM_COLLECTOR_DEPLOY"."SYS_INT_ID"="C_LTE_ANT_INFO"."SUBNET_ID")
  83.    8 - access(ROWID=ROWID)
  84.   11 - access("C_LTE_ANT_INFO"."SYS_INT_ID"="OBJECTS_EXS"."SYS_INT_ID")
  85.   12 - filter("C_LTE_ANT_INFO"."NE_CLASS"=355 AND "C_LTE_ANT_INFO"."NE_DN"="OBJECTS_EXS"."NE_DN")
  86.   14 - filter("TYPE_DN"='SUBNETWORK' AND "VIEW_NAME"='OMC')
  87.   15 - access("INVOKE_ID"=20065)
  88.   17 - access("SM_COLLECTOR_DEPLOY"."SYS_INT_ID"="OBJECTS_EXS"."SYS_INT_ID")
  89.   18 - filter("OBJECTS_EXS"."NE_CLASS"=6 AND "SM_COLLECTOR_DEPLOY"."NE_DN"="OBJECTS_EXS"."NE_DN")

  90. -------------------------------------------------------------------------------
复制代码

回复 只看该作者 道具 举报

9#
发表于 2016-8-11 16:47:10
以上已经全部贴完

回复 只看该作者 道具 举报

10#
发表于 2016-8-11 16:52:35
该SQL语句现在执行时没有返回结果的;但是如果执行成功的话应该也是没有返回结果的,因为第1、2个子查询只返回1行记录,第3个子查询返回0条记录

回复 只看该作者 道具 举报

11#
发表于 2016-8-11 17:09:01

当执行计划 为4075299578时
只是逻辑读 较高 而已, 单次逻辑读 达到 55170505 , 约为420 GB

判断性能瓶颈在CPU是否是准确的?请各位有劳帮忙看看,谢谢。==》 没错,逻辑读主要消耗CPU时间片

如 上述输出已经给出了 例如建索引 或采用 SPM固定执行计划的方案,均可一试

回复 只看该作者 道具 举报

12#
发表于 2016-8-11 17:18:30
多谢!
补充提问:
分别执行子查询都是瞬间出来结果,为什么组合在一起了就出现执行计划(只当个子查询的执行计划),这背后到底是什么在搞鬼;
已经确保每次执行之前都收集了统计信息,执行计划还是经常变更;

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-20 14:57 , Processed in 0.059906 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569