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

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

0

积分

1

好友

29

主题
1#
发表于 2013-3-13 11:09:24 | 查看: 4755| 回复: 3
本帖最后由 张沛 于 2013-3-13 11:32 编辑
  1. SELECT PID,
  2.            a.completiontime,
  3.           a.priority,
  4.           a.inv_type,
  5.           a.ifdel,
  6.           DECODE (a.wip_type,
  7.                            'PK', '派克',
  8.                   'JZLT', '昆明忠金立泰科技有限公司',
  9.                   'HS', '豪胜',
  10.                   'SH', '松浩',
  11.                   '无')
  12.              wip_type,
  13.           SIGN (
  14.                NVL (COMPLETIONTIME, SYSDATE)
  15.              - NVL (e.last_update_date, SYSDATE))
  16.              overdue,
  17.           b.planflag
  18.      FROM LS_WIP_HEADERS a
  19.           LEFT OUTER JOIN ls_wip_lines b
  20.              ON a.pid = b.headerid
  21.           LEFT OUTER JOIN acedev.ls_order_headers c
  22.              ON b.eheaderid = c.header_id
  23.           LEFT OUTER JOIN acedev.ls_order_lines d
  24.              ON b.elineid = d.line_id AND c.header_id = d.header_id
  25.           LEFT OUTER JOIN (  SELECT DISTINCT
  26.                                     header_id,
  27.                                     line_id,
  28.                                     prod_proc_type_id,
  29.                                     MAX (last_update_date) last_update_date
  30.                                FROM acedev.LS_WIP_PROD_PROC
  31.                            GROUP BY header_id, line_id, prod_proc_type_id) e
  32.              ON     b.headerid = e.header_id
  33.                 AND b.lineid = e.line_id
  34.                 AND e.prod_proc_type_id =
  35.                        DECODE (a.inv_type, '导轨', 7, 12)
  36.     WHERE b.state = 1 AND a.flag IN (1, 4)
  37.    UNION ALL
  38.     SELECT PID,
  39.           NO,
  40.                     a.completiontime,
  41.           a.priority,
  42.           a.inv_type,
  43.           a.ifdel,
  44.           DECODE (a.wip_type,
  45.                                 'PK', '派克',
  46.                   'JZLT', '昆明忠金立泰科技有限公司',
  47.                   'HS', '豪胜',
  48.                   'SH', '松浩',
  49.                   '无')
  50.              wip_type,
  51.           SIGN (
  52.                NVL (COMPLETIONTIME, SYSDATE)
  53.              - NVL (e.last_update_date, SYSDATE))
  54.              overdue,
  55.           b.planflag
  56.      FROM LS_WIP_HEADERS a
  57.           LEFT OUTER JOIN ls_wip_lines b
  58.              ON a.pid = b.headerid
  59.           LEFT OUTER JOIN acedev.lsv_gongdan2 c
  60.              ON b.makeno = c.makeno AND b.fnumber = c.ordered_item
  61.           LEFT OUTER JOIN (  SELECT DISTINCT
  62.                                     header_id,
  63.                                     line_id,
  64.                                     prod_proc_type_id,
  65.                                     MAX (last_update_date) last_update_date
  66.                                FROM acedev.LS_WIP_PROD_PROC
  67.                            GROUP BY header_id, line_id, prod_proc_type_id) e
  68.              ON     b.headerid = e.header_id
  69.                 AND b.lineid = e.line_id
  70.                 AND e.prod_proc_type_id =
  71.                        DECODE (a.inv_type, '导轨', 7, 12)
  72.     WHERE b.state = 1 AND a.flag IN (2, 3)

复制代码
在结尾添加上一个条件   and  NO = 'YM4404'后反应时间很慢

  1. -----------------------------------------------------------------------------------------------------
  2. | Id  | Operation                          | Name              | Rows  | Bytes |TempSpc| Cost (%CPU)|
  3. -----------------------------------------------------------------------------------------------------
  4. |   0 | SELECT STATEMENT                   |                   |     2 | 12500 |       | 27335   (1)|
  5. |   1 |  VIEW                              | LSV_WIP_SEARCH    |     2 | 12500 |       | 27335   (1)|
  6. |   2 |   UNION-ALL                        |                   |       |       |       |            |
  7. |   3 |    NESTED LOOPS OUTER              |                   |     1 |  3998 |       |  1354   (2)|
  8. |*  4 |     HASH JOIN OUTER                |                   |     1 |  3958 |       |  1352   (2)|
  9. |   5 |      VIEW                          |                   |     1 |  3910 |       |     9   (0)|
  10. |   6 |       NESTED LOOPS OUTER           |                   |     1 |   153 |       |     9   (0)|
  11. |   7 |        NESTED LOOPS                |                   |     1 |   132 |       |     7   (0)|
  12. |*  8 |         TABLE ACCESS BY INDEX ROWID| LS_WIP_HEADERS    |     1 |    69 |       |     4   (0)|
  13. |*  9 |          INDEX RANGE SCAN          | LS_WIP_HEADERS_U1 |     1 |       |       |     3   (0)|
  14. |* 10 |         TABLE ACCESS BY INDEX ROWID| LS_WIP_LINES      |     1 |    63 |       |     3   (0)|
  15. |* 11 |          INDEX RANGE SCAN          | LS_WIP_LINES_PK   |     6 |       |       |     2   (0)|
  16. |  12 |        TABLE ACCESS BY INDEX ROWID | LS_ORDER_HEADERS  |     1 |    21 |       |     2   (0)|
  17. |* 13 |         INDEX UNIQUE SCAN          | P_HEADER_ID       |     1 |       |       |     1   (0)|
  18. |  14 |      VIEW                          |                   |   178K|  8388K|       |  1341   (2)|
  19. |  15 |       HASH GROUP BY                |                   |   178K|  3495K|    10M|  1341   (2)|
  20. |  16 |        TABLE ACCESS FULL           | LS_WIP_PROD_PROC  |   178K|  3495K|       |   240   (3)|
  21. |* 17 |     TABLE ACCESS BY INDEX ROWID    | LS_ORDER_LINES    |     1 |    40 |       |     2   (0)|
  22. |* 18 |      INDEX UNIQUE SCAN             | LSPK_LINE_ID      |     1 |       |       |     1   (0)|
  23. |* 19 |    HASH JOIN OUTER                 |                   |     1 |  6478 |       | 25981   (1)|
  24. |  20 |     VIEW                           |                   |     1 |  6430 |       | 24638   (1)|
  25. |* 21 |      HASH JOIN OUTER               |                   |     1 |  3949 |       | 24638   (1)|
  26. |* 22 |       TABLE ACCESS BY INDEX ROWID  | LS_WIP_LINES      |     1 |    43 |       |     3   (0)|
  27. |  23 |        NESTED LOOPS                |                   |     1 |   112 |       |     7   (0)|
  28. |* 24 |         TABLE ACCESS BY INDEX ROWID| LS_WIP_HEADERS    |     1 |    69 |       |     4   (0)|
  29. |* 25 |          INDEX RANGE SCAN          | LS_WIP_HEADERS_U1 |     1 |       |       |     3   (0)|
  30. |* 26 |         INDEX RANGE SCAN           | LS_WIP_LINES_PK   |     6 |       |       |     2   (0)|
  31. |  27 |       VIEW                         | LSV_GONGDAN2      |   317K|  1160M|       | 24627   (1)|
  32. |  28 |        HASH GROUP BY               |                   |   317K|    37M|    81M| 24627   (1)|
  33. |* 29 |         HASH JOIN RIGHT OUTER      |                   |   317K|    37M|  5912K| 15788   (1)|
  34. |  30 |          TABLE ACCESS FULL         | LS_MATERIEL_ITEM  |   120K|  4489K|       |  1249   (1)|
  35. |* 31 |          HASH JOIN OUTER           |                   |   317K|    26M|    17M| 12773   (1)|
  36. |* 32 |           HASH JOIN RIGHT OUTER    |                   |   317K|    13M|  9184K|  4736   (1)|
  37. |  33 |            TABLE ACCESS FULL       | LS_ORDER_HEADERS  |   247K|  6282K|       |  2621   (1)|
  38. |  34 |            TABLE ACCESS FULL       | LS_ORDER_LISTS    |   317K|  6192K|       |  1180   (1)|
  39. |  35 |           TABLE ACCESS FULL        | LS_ORDER_LINES    |   593K|    22M|       |  5690   (1)|
  40. |  36 |     VIEW                           |                   |   178K|  8388K|       |  1341   (2)|
  41. |  37 |      HASH GROUP BY                 |                   |   178K|  3495K|    10M|  1341   (2)|
  42. |  38 |       TABLE ACCESS FULL            | LS_WIP_PROD_PROC  |   178K|  3495K|       |   240   (3)|
  43. -----------------------------------------------------------------------------------------------------

  44. Predicate Information (identified by operation id):
  45. ---------------------------------------------------

  46.    4 - access("E"."PROD_PROC_TYPE_ID"(+)=DECODE("from$_subquery$_006"."INV_TYPE",'导轨',7,12)
  47.               AND "from$_subquery$_006"."LINEID"="E"."LINE_ID"(+) AND
  48.               "from$_subquery$_006"."HEADERID"="E"."HEADER_ID"(+))
  49.    8 - filter("A"."FLAG"=1 OR "A"."FLAG"=4)
  50.    9 - access("A"."NO"='YM4404')
  51.   10 - filter("B"."STATE"=1)
  52.   11 - access("A"."PID"="B"."HEADERID")
  53.   13 - access("B"."EHEADERID"="C"."HEADER_ID"(+))
  54.   17 - filter("C"."HEADER_ID"="D"."HEADER_ID"(+))
  55.   18 - access("B"."ELINEID"="D"."LINE_ID"(+))
  56.   19 - access("E"."PROD_PROC_TYPE_ID"(+)=DECODE("A"."INV_TYPE",'导轨',7,12) AND
  57.               "B"."LINEID"="E"."LINE_ID"(+) AND "B"."HEADERID"="E"."HEADER_ID"(+))
  58.   21 - access("B"."FNUMBER"="C"."ORDERED_ITEM"(+) AND "B"."MAKENO"="C"."MAKENO"(+))
  59.   22 - filter("B"."STATE"=1)
  60.   24 - filter("A"."FLAG"=2 OR "A"."FLAG"=3)
  61.   25 - access("A"."NO"='YM4404')
  62.   26 - access("A"."PID"="B"."HEADERID")
  63.   29 - access("LINE"."ORDERED_ITEM"="ITEM"."FNUMBER"(+))
  64.   31 - access("LIST"."LINE_ID"="LINE"."LINE_ID"(+) AND
  65.               "LIST"."HEAD_ID"="LINE"."HEADER_ID"(+))
  66.   32 - access("LIST"."HEAD_ID"="HEAD"."HEADER_ID"(+))
复制代码
没有and  NO = 'YM4404'这个条件的执行计划,字数超了,贴在下面了
请问各位大师这是怎么回事?有没有好的方法能够让加调价的快一下,原先不加不到10秒出结果,加了条件接近1分钟才出结果
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi  olap
2#
发表于 2013-3-13 11:32:33

  1. -------------------------------------------------------------------------------------------------
  2. | Id  | Operation                       | Name             | Rows  | Bytes |TempSpc| Cost (%CPU)|
  3. -------------------------------------------------------------------------------------------------
  4. |   0 | SELECT STATEMENT                |                  | 71208 |   424M|       | 78454   (1)|
  5. |   1 |  VIEW                           | LSV_WIP_SEARCH   | 71208 |   424M|       | 78454   (1)|
  6. |   2 |   UNION-ALL                     |                  |       |       |       |            |
  7. |*  3 |    HASH JOIN RIGHT OUTER        |                  | 35604 |   135M|    10M| 30092   (1)|
  8. |   4 |     VIEW                        |                  |   178K|  8388K|       |  1341   (2)|
  9. |   5 |      HASH GROUP BY              |                  |   178K|  3495K|    10M|  1341   (2)|
  10. |   6 |       TABLE ACCESS FULL         | LS_WIP_PROD_PROC |   178K|  3495K|       |   240   (3)|
  11. |*  7 |     HASH JOIN RIGHT OUTER       |                  | 35604 |   134M|    29M| 21566   (1)|
  12. |   8 |      TABLE ACCESS FULL          | LS_ORDER_LINES   |   593K|    22M|       |  5690   (1)|
  13. |   9 |      VIEW                       |                  | 35604 |   132M|       |  7800   (2)|
  14. |* 10 |       HASH JOIN                 |                  | 35604 |  5319K|  3344K|  7800   (2)|
  15. |* 11 |        HASH JOIN OUTER          |                  | 35604 |  2920K|  2608K|  6875   (2)|
  16. |* 12 |         TABLE ACCESS FULL       | LS_WIP_LINES     | 35604 |  2190K|       |  3710   (1)|
  17. |  13 |         TABLE ACCESS FULL       | LS_ORDER_HEADERS |   247K|  5074K|       |  2645   (2)|
  18. |* 14 |        TABLE ACCESS FULL        | LS_WIP_HEADERS   | 62330 |  4199K|       |   521   (2)|
  19. |* 15 |    HASH JOIN RIGHT OUTER        |                  | 35604 |   219M|    10M| 48362   (1)|
  20. |  16 |     VIEW                        |                  |   178K|  8388K|       |  1341   (2)|
  21. |  17 |      HASH GROUP BY              |                  |   178K|  3495K|    10M|  1341   (2)|
  22. |  18 |       TABLE ACCESS FULL         | LS_WIP_PROD_PROC |   178K|  3495K|       |   240   (3)|
  23. |  19 |     VIEW                        |                  | 35604 |   218M|       | 35659   (1)|
  24. |* 20 |      HASH JOIN                  |                  | 35604 |   134M|  4936K| 35659   (1)|
  25. |* 21 |       TABLE ACCESS FULL         | LS_WIP_HEADERS   | 62330 |  4199K|       |   521   (2)|
  26. |* 22 |       HASH JOIN OUTER           |                  | 35604 |   131M|       | 28341   (1)|
  27. |* 23 |        TABLE ACCESS FULL        | LS_WIP_LINES     | 35604 |  1495K|       |  3710   (1)|
  28. |  24 |        VIEW                     | LSV_GONGDAN2     |   317K|  1160M|       | 24627   (1)|
  29. |  25 |         HASH GROUP BY           |                  |   317K|    37M|    81M| 24627   (1)|
  30. |* 26 |          HASH JOIN RIGHT OUTER  |                  |   317K|    37M|  5912K| 15788   (1)|
  31. |  27 |           TABLE ACCESS FULL     | LS_MATERIEL_ITEM |   120K|  4489K|       |  1249   (1)|
  32. |* 28 |           HASH JOIN OUTER       |                  |   317K|    26M|    17M| 12773   (1)|
  33. |* 29 |            HASH JOIN RIGHT OUTER|                  |   317K|    13M|  9184K|  4736   (1)|
  34. |  30 |             TABLE ACCESS FULL   | LS_ORDER_HEADERS |   247K|  6282K|       |  2621   (1)|
  35. |  31 |             TABLE ACCESS FULL   | LS_ORDER_LISTS   |   317K|  6192K|       |  1180   (1)|
  36. |  32 |            TABLE ACCESS FULL    | LS_ORDER_LINES   |   593K|    22M|       |  5690   (1)|
  37. -------------------------------------------------------------------------------------------------

  38. Predicate Information (identified by operation id):
  39. ---------------------------------------------------

  40.    3 - access("E"."PROD_PROC_TYPE_ID"(+)=DECODE("from$_subquery$_006"."INV_TYPE",'导轨',7,1
  41.               2) AND "from$_subquery$_006"."LINEID"="E"."LINE_ID"(+) AND
  42.               "from$_subquery$_006"."HEADERID"="E"."HEADER_ID"(+))
  43.    7 - access("C"."HEADER_ID"="D"."HEADER_ID"(+) AND "B"."ELINEID"="D"."LINE_ID"(+))
  44.   10 - access("A"."PID"="B"."HEADERID")
  45.   11 - access("B"."EHEADERID"="C"."HEADER_ID"(+))
  46.   12 - filter("B"."STATE"=1)
  47.   14 - filter("A"."FLAG"=1 OR "A"."FLAG"=4)
  48.   15 - access("E"."PROD_PROC_TYPE_ID"(+)=DECODE("A"."INV_TYPE",'导轨',7,12) AND
  49.               "B"."LINEID"="E"."LINE_ID"(+) AND "B"."HEADERID"="E"."HEADER_ID"(+))
  50.   20 - access("A"."PID"="B"."HEADERID")
  51.   21 - filter("A"."FLAG"=2 OR "A"."FLAG"=3)
  52.   22 - access("B"."FNUMBER"="C"."ORDERED_ITEM"(+) AND "B"."MAKENO"="C"."MAKENO"(+))
  53.   23 - filter("B"."STATE"=1)
  54.   26 - access("LINE"."ORDERED_ITEM"="ITEM"."FNUMBER"(+))
  55.   28 - access("LIST"."LINE_ID"="LINE"."LINE_ID"(+) AND
  56.               "LIST"."HEAD_ID"="LINE"."HEADER_ID"(+))
  57.   29 - access("LIST"."HEAD_ID"="HEAD"."HEADER_ID"(+))
复制代码

回复 只看该作者 道具 举报

3#
发表于 2013-3-13 11:49:42
请使用 sql health check 脚本 分析该SQL 然后上传HTML
http://www.oracledatabase12g.com ... h-check-script.html

回复 只看该作者 道具 举报

4#
发表于 2013-3-14 11:04:46
and  NO = 'YM4404'这列上有索引,在sql中加个hint让LS_WIP_LINES和LS_WIP_HEADERS
走hash试试,发一下执行计划。

回复 只看该作者 道具 举报

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

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

GMT+8, 2024-11-16 10:36 , Processed in 0.146089 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

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