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

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

131

积分

1

好友

13

主题
1#
发表于 2012-3-20 14:01:19 | 查看: 4337| 回复: 2
lottery@TARGETAD>select * from v$mystat where rownum<2;

       SID STATISTIC#      VALUE
---------- ---------- ----------
       835          0 ##########

Elapsed: 00:00:00.02
lottery@TARGETAD>set autotrace traceonly
lottery@TARGETAD>     SELECT so.*
  2         FROM TB_LOTTERY_STAKE_ORDER so,
  3              TB_STAKE_NUMBER sn
  4        WHERE so.LOTT_STAKE_ID = sn.LOTT_STAKE_ID
  5          AND so.LOTT_ORDER_ID = sn.LOTT_ORDER_ID
  6          AND so.STATUS = 1
  7          AND so.game_id = '2010042712YX00116982'
  8           AND so.period = '00003'
  9           AND sn.STAKE_NUMBER like '%4:%';

这个要好慢好慢才能出结果
ys@TARGETAD>select * from v$session_event t where t.sid=835;

       SID EVENT                                    TOTAL_WAITS TOTAL_TIMEOUTS TIME_WAITED
---------- ---------------------------------------- ----------- -------------- -----------
AVERAGE_WAIT   MAX_WAIT TIME_WAITED_MICRO   EVENT_ID WAIT_CLASS_ID WAIT_CLASS#
------------ ---------- ----------------- ---------- ------------- -----------
WAIT_CLASS
----------------------------------------------------------------
       835 Disk file operations I/O                           5              0           1
         .29          1             14535  166678035    1740759767           8
User I/O

       835 latch: cache buffers chains                      187              0          25
         .14          4            253597 2779959231    3875070507           4
Concurrency

       835 db file sequential read                          898              0         223
         .25         83           2232139 2652584166    1740759767           8
User I/O

       835 db file scattered read                             3              0           0
         .02          0               531  506183215    1740759767           8
User I/O

       835 db file parallel read                              4              0           3
         .69          1             27573  834992820    1740759767           8
User I/O

       835 direct path read                                 348              0         380
        1.09         60           3797821 3926164927    1740759767           8
User I/O

       835 SQL*Net message to client                        789              0           1
           0          0              5141 2067390145    2000153315           7
Network

       835 SQL*Net message from client                      788              0      619240
      785.84     134004        6192397003 1421975091    2723168908           6
Idle

       835 SQL*Net break/reset to client                      1              0           0
         .01          0                82 1963888671    4217450380           1
Application

       835 events in waitclass Other                         22             22           0
           0          0               100 1736664284    1893977003           0
Other


10 rows selected.

这是在执行过程中查看到的等待事件,刘总帮忙看看这是啥原因啊
2#
发表于 2012-3-20 14:05:45
Elapsed: 00:06:49.19

Execution Plan
----------------------------------------------------------
Plan hash value: 1243003693

----------------------------------------------------------------------------------------------------
----------------------------

| Id  | Operation                             | Name                   | Rows  | Bytes | Cost (%CPU)
| Time     | Pstart| Pstop |

----------------------------------------------------------------------------------------------------
----------------------------

|   0 | SELECT STATEMENT                      |                        |   292 | 75628 |  1622   (1)
| 00:00:20 |       |       |

|   1 |  VIEW                                 | VW_TE_2                |   292 |   104K|  1622   (1)
| 00:00:20 |       |       |

|   2 |   UNION-ALL                           |                        |       |       |
|          |       |       |

|   3 |    NESTED LOOPS                       |                        |       |       |
|          |       |       |

|   4 |     NESTED LOOPS                      |                        |    14 |  3626 |   207   (1)
| 00:00:03 |       |       |

|   5 |      PARTITION RANGE OR               |                        |    14 |  2702 |   151   (1)
| 00:00:02 |KEY(OR)|KEY(OR)|

|*  6 |       TABLE ACCESS FULL               | TB_LOTTERY_STAKE_ORDER |    14 |  2702 |   151   (1)
| 00:00:02 |KEY(OR)|KEY(OR)|

|*  7 |      INDEX RANGE SCAN                 | INX_LOTT_ORDER_ID      |     5 |       |     2   (0)
| 00:00:01 |       |       |

|*  8 |     TABLE ACCESS BY GLOBAL INDEX ROWID| TB_STAKE_NUMBER        |     1 |    66 |     4   (0)
| 00:00:01 | ROWID | ROWID |

|*  9 |    HASH JOIN                          |                        |   278 | 72002 |  1415   (2)
| 00:00:17 |       |       |

|  10 |     PART JOIN FILTER CREATE           | :BF0000                |   278 | 53654 |   596   (1)
| 00:00:08 |       |       |

|  11 |      PARTITION RANGE SINGLE           |                        |   278 | 53654 |   596   (1)
| 00:00:08 |     5 |     5 |

|* 12 |       TABLE ACCESS FULL               | TB_LOTTERY_STAKE_ORDER |   278 | 53654 |   596   (1)
| 00:00:08 |     5 |     5 |

|  13 |     PARTITION RANGE SINGLE            |                        | 71105 |  4582K|   818   (2)
| 00:00:10 |KEY(AP)|KEY(AP)|

|* 14 |      TABLE ACCESS FULL                | TB_STAKE_NUMBER        | 71105 |  4582K|   818   (2)
| 00:00:10 |     5 |     5 |

----------------------------------------------------------------------------------------------------
----------------------------


Predicate Information (identified by operation id):
---------------------------------------------------

   6 - filter("SO"."PERIOD"='00003' AND "SO"."GAME_ID"='2010042712YX00116982' AND "SO"."STATUS"=1 AN
D

              ("SO"."LOTT_ORDER_ID">='2012030100000000000000' OR "SO"."LOTT_ORDER_ID"<'2010020400000
000000000'))

   7 - access("SO"."LOTT_ORDER_ID"="SN"."LOTT_ORDER_ID")
   8 - filter("SN"."STAKE_NUMBER" LIKE '%4:%' AND "SO"."LOTT_STAKE_ID"="SN"."LOTT_STAKE_ID")
   9 - access("SO"."LOTT_ORDER_ID"="SN"."LOTT_ORDER_ID" AND "SO"."LOTT_STAKE_ID"="SN"."LOTT_STAKE_ID
")

  12 - filter("SO"."PERIOD"='00003' AND "SO"."GAME_ID"='2010042712YX00116982' AND "SO"."STATUS"=1)
  14 - filter("SN"."STAKE_NUMBER" LIKE '%4:%')


Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
    9733272  consistent gets
      10475  physical reads
          0  redo size
     748583  bytes sent via SQL*Net to client
       5542  bytes received via SQL*Net from client
        468  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
       6998  rows processed

lottery@TARGETAD>

附上结果,要6分多钟,为什么出一个执行计划要这么久啊

回复 只看该作者 道具 举报

3#
发表于 2012-3-20 14:56:35
set autotrace on:        Shows the execution plan as well as statistics of the statement.
set autotrace on explain:        Displays the execution plan only.
set autotrace on statistics:        Displays the statistics only.
set autotrace traceonly:        Displays the execution plan and the statistics (as set autotrace on does), but doesn't print a query's result.
set autotrace off:        Disables all autotrace



set autotrace traceonly 是 只显示执行计划和 执行统计信息,但是不打印查询结果, 但是仍会执行语句,即在语句执行结束后 仅打印 plan 和 statistics。

set autotrace on explain  只显示执行计划,不执行语句。
set autotrace on statistics   只显示 执行统计statistics ,需要执行语句;plan 是可以不执行就生成的, statistics 只有执行了才知道!

SQL> set timing on;

SQL> set autotrace traceonly exp;

SQL> select 1 from tab$,tab$;
Elapsed: 00:00:00.01

Execution Plan
----------------------------------------------------------
Plan hash value: 1769914890

---------------------------------------------------------------------
| Id  | Operation            | Name | Rows  | Cost (%CPU)| Time     |
---------------------------------------------------------------------
|   0 | SELECT STATEMENT     |      |  3003K|   339K  (1)| 01:07:57 |
|   1 |  MERGE JOIN CARTESIAN|      |  3003K|   339K  (1)| 01:07:57 |
|   2 |   TABLE ACCESS FULL  | TAB$ |  1733 |   198   (1)| 00:00:03 |
|   3 |   BUFFER SORT        |      |  1733 |   339K  (1)| 01:07:54 |
|   4 |    TABLE ACCESS FULL | TAB$ |  1733 |   196   (1)| 00:00:03 |
---------------------------------------------------------------------

SQL> set autotrace traceonly statistics;


SQL> select 1 from tab$,tab$;

3003289 rows selected.

Elapsed: 00:04:03.10

Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
       3209  consistent gets
          0  physical reads
          0  redo size
   51657072  bytes sent via SQL*Net to client
    2202878  bytes received via SQL*Net from client
     200221  SQL*Net roundtrips to/from client
          1  sorts (memory)
          0  sorts (disk)
    3003289  rows processed

回复 只看该作者 道具 举报

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

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

GMT+8, 2024-12-24 03:43 , Processed in 0.045841 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

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