oracle查看执行计划

分析oracle的问题时有时候需要对单个session开启debug,打印出详细信息

查询session

SQL> select a.username,a.sid ,a.serial#,b.spid  from v$session a,v$process b where a.paddr=b.addr;

USERNAME                              SID    SERIAL# SPID
------------------------------ ---------- ---------- ------------------------
                                        2          1 4213
                                        3          1 4215
                                        4          1 4219
                                        5          1 4221
                                        6          1 4223
                                        7          1 4225
                                        8          1 4227
                                        9          1 4229
                                       10          1 4231
                                       11          1 4233
                                       12          1 4235

USERNAME                              SID    SERIAL# SPID
------------------------------ ---------- ---------- ------------------------
                                       13          1 4237
                                       14          1 4239
                                       15          1 4241
                                       16          1 4243
ZRD                                    38        150 639
                                       20          2 4280
                                       26          3 4296
                                       23         19 4350
                                       22         42 31950
ZRD                                    37         53 32721
SYS                                    39        307 1384

USERNAME                              SID    SERIAL# SPID
------------------------------ ---------- ---------- ------------------------
ZRD                                    40         49 32717
                                       43        554 1400
                                        1        409 1402
                                       33          2 4313
                                       34         13 4315

27 rows selected.

可以看到有些是没有username,这些是oracle后台进程

ps -ef | grep oracle对比
$ ps -ef | grep oracle | grep "ora_"
oracle    1540     1  0 21:48 ?        00:00:00 ora_j000_orcl
oracle    1542     1  0 21:48 ?        00:00:00 ora_j001_orcl
oracle    4213     1  0 16:41 ?        00:00:00 ora_pmon_orcl
oracle    4215     1  0 16:41 ?        00:00:00 ora_vktm_orcl
oracle    4219     1  0 16:41 ?        00:00:00 ora_gen0_orcl
oracle    4221     1  0 16:41 ?        00:00:00 ora_diag_orcl
oracle    4223     1  0 16:41 ?        00:00:00 ora_dbrm_orcl
oracle    4225     1  0 16:41 ?        00:00:00 ora_psp0_orcl
oracle    4227     1  0 16:41 ?        00:00:00 ora_dia0_orcl
oracle    4229     1  0 16:41 ?        00:00:00 ora_mman_orcl
oracle    4231     1  0 16:41 ?        00:00:01 ora_dbw0_orcl
oracle    4233     1  0 16:41 ?        00:00:02 ora_lgwr_orcl
oracle    4235     1  0 16:41 ?        00:00:06 ora_ckpt_orcl
oracle    4237     1  0 16:41 ?        00:00:00 ora_smon_orcl
oracle    4239     1  0 16:41 ?        00:00:00 ora_reco_orcl
oracle    4241     1  0 16:41 ?        00:00:00 ora_mmon_orcl
oracle    4243     1  0 16:41 ?        00:00:00 ora_mmnl_orcl
oracle    4245     1  0 16:41 ?        00:00:00 ora_d000_orcl
oracle    4247     1  0 16:41 ?        00:00:00 ora_s000_orcl
oracle    4280     1  0 16:41 ?        00:00:00 ora_qmnc_orcl
oracle    4296     1  0 16:41 ?        00:00:00 ora_cjq0_orcl
oracle    4313     1  0 16:41 ?        00:00:00 ora_q000_orcl
oracle    4315     1  0 16:41 ?        00:00:00 ora_q001_orcl
oracle    4350     1  0 16:46 ?        00:00:00 ora_smco_orcl
oracle   31950     1  0 18:06 ?        00:00:00 ora_w000_orcl

筛选掉oracle后台进程,修改sql:

SQL> select a.username,a.sid ,a.serial#,b.spid  from v$session a,v$process b where a.paddr=b.addr and a.username is not null;

USERNAME                              SID    SERIAL# SPID
------------------------------ ---------- ---------- ------------------------
ZRD                                    38        150 639
ZRD                                    37         53 32721
SYS                                    39        307 1384
ZRD                                    40         49 32717
SYS                                     1        439 1475

查看当前session的进程

SQL> select sid from v$mystat where rownum=1;

       SID
----------
        39

SQL> select pid, spid from v$process p, v$session s where p.addr = s.paddr and s.sid=39;

       PID SPID
---------- ------------------------
        25 1384

可以改写为:

select pid, spid from v$process p, v$session s where p.addr = s.paddr and s.sid=(select sid from v$mystat where rownum=1);

oracle session 打dump开启debug分析步骤:
oradebug setospid $sid
oradebug unlimit
oradebug dump processstate 10
oradebug tracefile_name

获取帮助信息

SQL> oradebug help
HELP           [command]                 Describe one or all commands
SETMYPID                                 Debug current process
SETOSPID       <ospid>                   Set OS pid of process to debug
SETORAPID      <orapid> ['force']        Set Oracle pid of process to debug
SETORAPNAME    <orapname>                Set Oracle process name to debug
SHORT_STACK                              Get abridged OS stack
CURRENT_SQL                              Get current SQL
DUMP           <dump_name> <lvl> [addr]  Invoke named dump
DUMPSGA        [bytes]                   Dump fixed SGA
DUMPLIST                                 Print a list of available dumps
EVENT          <text>                    Set trace event in process
SESSION_EVENT  <text>                    Set trace event in session
DUMPVAR        <p|s|uga> <name> [level]  Print/dump a fixed PGA/SGA/UGA variable
DUMPTYPE       <address> <type> <count>  Print/dump an address with type info
SETVAR         <p|s|uga> <name> <value>  Modify a fixed PGA/SGA/UGA variable
PEEK           <addr> <len> [level]      Print/Dump memory
POKE           <addr> <len> <value>      Modify memory
WAKEUP         <orapid>                  Wake up Oracle process
SUSPEND                                  Suspend execution
RESUME                                   Resume execution
FLUSH                                    Flush pending writes to trace file
CLOSE_TRACE                              Close trace file
TRACEFILE_NAME                           Get name of trace file
LKDEBUG                                  Invoke global enqueue service debugger
NSDBX                                    Invoke CGS name-service debugger
-G             <Inst-List | def | all>   Parallel oradebug command prefix
-R             <Inst-List | def | all>   Parallel oradebug prefix (return output
SETINST        <instance# .. | all>      Set instance list in double quotes
SGATOFILE      <SGA dump dir>         Dump SGA to file; dirname in double quotes
DMPCOWSGA      <SGA dump dir> Dump & map SGA as COW; dirname in double quotes
MAPCOWSGA      <SGA dump dir>         Map SGA as COW; dirname in double quotes
HANGANALYZE    [level] [syslevel]        Analyze system hang
FFBEGIN                                  Flash Freeze the Instance
FFDEREGISTER                             FF deregister instance from cluster
FFTERMINST                               Call exit and terminate instance
FFRESUMEINST                             Resume the flash frozen instance
FFSTATUS                                 Flash freeze status of instance
SKDSTTPCS      <ifname>  <ofname>        Helps translate PCs to names
WATCH          <address> <len> <self|exist|all|target>  Watch a region of memory
DELETE         <local|global|target> watchpoint <id>    Delete a watchpoint
SHOW           <local|global|target> watchpoints        Show  watchpoints
DIRECT_ACCESS  <set/enable/disable command | select query> Fixed table access
CORE                                     Dump core without crashing process
IPC                                      Dump ipc information
UNLIMIT                                  Unlimit the size of the trace file
PROCSTAT                                 Dump process statistics
CALL           [-t count] <func> [arg1]...[argn]  Invoke function with arguments

oracle 查看执行计划方法:

A.PL/SQL 工具,选择对应SQL F5即可查看执行计划

B.命令行进行查看
1.explain plan for 命令
2.dbms_xplan 包查看
3.sqlplus 中使用 set autotrace
4.10046事件
5.10053事件
6.awr报告
7.其他

1.explain plan

explain plan for + SQL语句
select * from table(dbms_xplan.display)

dbmsx_xplan解析SQL的执行计划,先将执行步骤写入plan_table$,dbms_xplan.display 是将plan_table$中数据格式化显示
dbms_xplan.display查看的每个session私有的对象,即每个session写入table_table$对象是独立的,并不相互影响。

例如:

SQL> explain plan for select * from ntts where account='408050';

Explained.

SQL> select * from table(dbms_xplan.display);

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 742887497

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |     1 |    51 |  1504   (1)| 00:00:19 |
|*  1 |  TABLE ACCESS FULL| NTTS |     1 |    51 |  1504   (1)| 00:00:19 |
--------------------------------------------------------------------------

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

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------

   1 - filter("ACCOUNT"='408050')

13 rows selected.

SQL> 

验证隔离如下:

SQL> explain plan for select * from ntts where account='408050';

Explained.

SQL> select count(*) from sys.plan_table$;

  COUNT(*)
----------
         4

SQL> 
SQL> select pid, spid from v$process p, v$session s where p.addr = s.paddr and s.sid=(select sid from v$mystat where rownum=1);

       PID SPID
---------- ------------------------
        25 1714

新开一个session

SQL> select pid, spid from v$process p, v$session s where p.addr = s.paddr and s.sid=(select sid from v$mystat where rownum=1);

       PID SPID
---------- ------------------------
        27 1783

SQL> explain plan for select * from ntts where account='408050';

Explained.

SQL> select count(*) from sys.plan_table$;

  COUNT(*)
----------
         2

不同session的plan_table$的记录数量不一致,因此不同session之间是互相隔离的

2.dbms_xplan

select * from table(dbms_xplan.display)
select * from table(dbms_xplan.display_cursor(null,null,’advanced’));
select * from table(dbms_xplan.display_cursor(‘sql_id/hash_value’,child_cursor_number,’advanced’))
select * from table(dbms_xplan.display_awr(‘sql_id’))

1.select * from table(dbms_xplan.display)需要与explain plan for配合使用

2.select * from table(dbms_xplan.display_cursor(null,null,’advanced’));
或select * from table(dbms_xplan.display_cursor(null,null,’all’));
显示结果略有不同

SQL> select * from scott.emp;

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM
---------- ---------- --------- ---------- --------- ---------- ----------
    DEPTNO
----------
      7369 SMITH      CLERK           7902 17-DEC-80        800
        20
....
14 rows selected.

SQL> select * from table(dbms_xplan.display_cursor(null,null,'advanced'));

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID  ggqns3c1jz86c, child number 0
-------------------------------------
select * from scott.emp

Plan hash value: 3956160932

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |       |       |     3 (100)|          |
|   1 |  TABLE ACCESS FULL| EMP  |    14 |   532 |     3   (0)| 00:00:01 |

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
--------------------------------------------------------------------------

Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------

   1 - SEL$1 / EMP@SEL$1

Outline Data
-------------

  /*+

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
      BEGIN_OUTLINE_DATA
      IGNORE_OPTIM_EMBEDDED_HINTS
      OPTIMIZER_FEATURES_ENABLE('11.2.0.1')
      DB_VERSION('11.2.0.1')
      ALL_ROWS
      OUTLINE_LEAF(@"SEL$1")
      FULL(@"SEL$1" "EMP"@"SEL$1")
      END_OUTLINE_DATA
  */

Column Projection Information (identified by operation id):

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
-----------------------------------------------------------

   1 - "EMP"."EMPNO"[NUMBER,22], "EMP"."ENAME"[VARCHAR2,10],
       "EMP"."JOB"[VARCHAR2,9], "EMP"."MGR"[NUMBER,22],
       "EMP"."HIREDATE"[DATE,7], "EMP"."SAL"[NUMBER,22],
       "EMP"."COMM"[NUMBER,22], "EMP"."DEPTNO"[NUMBER,22]


40 rows selected.

SQL> 
SQL> select * from table(dbms_xplan.display_cursor(null,null,'all'));

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID  fv0v1agrdrjkv, child number 1
-------------------------------------
select * from table(dbms_xplan.display_cursor(null,null,'advanced'))

Plan hash value: 3713220770

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

| Id  | Operation                         | Name           | Rows  | Bytes | Cos
t (%CPU)| Time     |

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------

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

|   0 | SELECT STATEMENT                  |                |       |       |
29 (100)|          |

|   1 |  COLLECTION ITERATOR PICKLER FETCH| DISPLAY_CURSOR |    80 |   160 |
29   (0)| 00:00:01 |

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

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
--------------------


Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------

   1 - SEL$4A78348A / KOKBF$@SEL$E112F6F0

Column Projection Information (identified by operation id):
-----------------------------------------------------------


PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
   1 - VALUE(A0)[300]

Note
-----
   - cardinality feedback used for this statement


27 rows selected.

SQL> 

3.select * from table(dbms_xplan.display_cursor(‘sql_id/hash_value’,child_cursor_number,’advanced’))
需要知道sql_id或者hash值

使用v$sql查看sql_id

select * from ntts asd where asd.account='408050' and asd.userid='10000000557720'
select SQL_TEXT,SQL_ID,HASH_VALUE,CHILD_NUMBER from v$sql where sql_text like '%where asd.account%'

查找到如下记录:

select * from ntts asd where asd.account='408050' and asd.userid='10000000557720'   5yt2dzpnhz1x7   1762625447  0

传入需要的参数:
select * from table(dbms_xplan.display_cursor(‘5yt2dzpnhz1x7’,0,’advanced’))

SQL>   select * from table(dbms_xplan.display_cursor('5yt2dzpnhz1x7',0,'advanced'));

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID  5yt2dzpnhz1x7, child number 0
-------------------------------------
select * from ntts asd where asd.account='408050' and
asd.userid='10000000557720'

Plan hash value: 742887497

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |       |       |  1504 (100)|          |

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
|*  1 |  TABLE ACCESS FULL| NTTS |     1 |    51 |  1504   (1)| 00:00:19 |
--------------------------------------------------------------------------

Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------

   1 - SEL$1 / ASD@SEL$1

Outline Data
-------------


PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
  /*+
      BEGIN_OUTLINE_DATA
      IGNORE_OPTIM_EMBEDDED_HINTS
      OPTIMIZER_FEATURES_ENABLE('11.2.0.1')
      DB_VERSION('11.2.0.1')
      ALL_ROWS
      OUTLINE_LEAF(@"SEL$1")
      FULL(@"SEL$1" "ASD"@"SEL$1")
      END_OUTLINE_DATA
  */


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

   1 - filter(("ASD"."ACCOUNT"='408050' AND
              "ASD"."USERID"=10000000557720))

Column Projection Information (identified by operation id):
-----------------------------------------------------------

   1 - "ASD"."USERID"[NUMBER,22], "ASD"."FULLNAME"[VARCHAR2,127],
       "ASD"."ACCOUNT"[VARCHAR2,128], "ASD"."ISLOCK"[NUMBER,22],

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
       "ASD"."CREATETIME"[DATE,7], "ASD"."OFFICE_ADDR"[VARCHAR2,255],
       "ASD"."MOBILE"[VARCHAR2,100], "ASD"."ISEXPIRED"[NUMBER,22]


47 rows selected.

4.select * from table(dbms_xplan.display_awr(‘sql_id’))
可以查看历史执行计划

select * from table(dbms_xplan.display_awr(‘5yt2dzpnhz1x7’))

SQL> select * from table(dbms_xplan.display_awr('5yt2dzpnhz1x7')) ;

no rows selected

SQL> 

说明该sql的执行计划仍然在shared pool中
因此,display_awr查看的是不再shared pool中的记录

3.autotrace

set autotrace off/on/traceonly [explain] [statistics]

set autotrace on显示执行结果以及执行计划

SQL> set autotrace on;
SQL> select * from scott.emp;

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80        800                    20
.....
14 rows selected.


Execution Plan
----------------------------------------------------------
Plan hash value: 3956160932

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |    14 |   532 |     3   (0)| 00:00:01 |
|   1 |  TABLE ACCESS FULL| EMP  |    14 |   532 |     3   (0)| 00:00:01 |
--------------------------------------------------------------------------


Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          8  consistent gets
          0  physical reads
          0  redo size
       1454  bytes sent via SQL*Net to client
        419  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
         14  rows processed
SQL> set autotrace off
SQL> 

若只想查看执行计划可使用traceonly

SQL> set autotrace traceonly 
SQL> select * from scott.emp;

14 rows selected.


Execution Plan
----------------------------------------------------------
Plan hash value: 3956160932

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |    14 |   532 |     3   (0)| 00:00:01 |
|   1 |  TABLE ACCESS FULL| EMP  |    14 |   532 |     3   (0)| 00:00:01 |
--------------------------------------------------------------------------


Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          8  consistent gets
          0  physical reads
          0  redo size
       1454  bytes sent via SQL*Net to client
        419  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
         14  rows processed
SQL> 
4.10046事件与tkprof命令

10046事件级别:
Lv1 - 启用标准的SQL_TRACE功能,等价于SQL_TRACE
Lv4 - Level 1 + 绑定值(bind values)
Lv8 - Level 1 + 等待事件跟踪
Lv12 - Level 1 + Level 4 + Level 8

一般使用12

在session级别开启10046
开启:
SQL> alter session set events ‘10046 trace name context forever, level 12’;

SQL> oradebug event 10046 trace name context forever, level 12
关闭:
SQL> alter session set events ‘10046 trace name context off’;

SQL> oradebug event 10046 trace name context off

使用alter session需要找到对应的trace文件,
当前的id

select * from v$mystat where rownum=1;
SELECT tracefile FROM v$process WHERE addr IN (SELECT paddr FROM v$session WHERE sid='xxx');

然后使用tkprof 源文件 目标文件进行格式化转换

SQL> alter session set events '10046 trace name context forever, level 12';

Session altered.

SQL> select * from ntts asd where asd.account='408050' and asd.userid='10000000557720';

    USERID
----------
FULLNAME
.....

SQL> alter session set events '10046 trace name context off';

Session altered.

SQL> select * from v$mystat where rownum=1;

       SID STATISTIC#      VALUE
---------- ---------- ----------
        32          0          0

SQL> SELECT tracefile FROM v$process WHERE addr IN (SELECT paddr FROM v$session WHERE sid='32');         

TRACEFILE
--------------------------------------------------------------------------------
/oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_2229.trc

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@oratest trace]$ more /oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_2229.trc
.....
WAIT #2: nam='SQL*Net message to client' ela= 3 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1498145254597285

*** 2017-06-22 23:27:44.760
WAIT #2: nam='SQL*Net message from client' ela= 10162358 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1498145264760084
CLOSE #2:c=0,e=5,dep=0,type=1,tim=1498145264760156
=====================
PARSING IN CURSOR #3 len=81 dep=0 uid=91 oct=3 lid=91 tim=1498145264760298 hv=1447932931 ad='38cbc3a0' sqlid='9t23h8pb4vd03'
select * from ntts asd where asd.account='408050' and asd.userid='10000000557720'
END OF STMT
PARSE #3:c=0,e=117,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=742887497,tim=1498145264760295
EXEC #3:c=0,e=47,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=742887497,tim=1498145264760386
WAIT #3: nam='SQL*Net message to client' ela= 3 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1498145264760424
WAIT #3: nam='Disk file operations I/O' ela= 24 FileOperation=2 fileno=4 filetype=2 obj#=-1 tim=1498145264761026
WAIT #3: nam='direct path read' ela= 103 file number=4 first dba=563 block cnt=5 obj#=74909 tim=1498145264764487
WAIT #3: nam='direct path read' ela= 71 file number=4 first dba=57768 block cnt=8 obj#=74909 tim=1498145264764707
FETCH #3:c=3000,e=4299,p=13,cr=4,cu=0,mis=0,r=1,dep=0,og=1,plh=742887497,tim=1498145264764741
WAIT #3: nam='SQL*Net message from client' ela= 232 driver id=1650815232 #bytes=1 p3=0 obj#=74909 tim=1498145264765052
WAIT #3: nam='direct path read' ela= 92 file number=4 first dba=57777 block cnt=15 obj#=74909 tim=1498145264765236
WAIT #3: nam='direct path read' ela= 149 file number=4 first dba=57793 block cnt=15 obj#=74909 tim=1498145264765423
WAIT #3: nam='direct path read' ela= 112 file number=4 first dba=57809 block cnt=15 obj#=74909 tim=1498145264765594
WAIT #3: nam='direct path read' ela= 106 file number=4 first dba=57825 block cnt=15 obj#=74909 tim=1498145264765832

....

tkprof 转换       
$ tkprof /oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_2229.trc  /tmp/ora_sql.trc

cat /tmp/ora_sql.trc查看

TKPROF: Release 11.2.0.1.0 - Development on Thu Jun 22 23:31:30 2017

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

********************************************************************************
count    = number of times OCI procedure was executed
cpu      = cpu time in seconds executing 
elapsed  = elapsed time in seconds executing
disk     = number of physical reads of buffers from disk
query    = number of buffers gotten for consistent read
current  = number of buffers gotten in current mode (usually for update)
rows     = number of rows processed by the fetch or execute call
********************************************************************************

SQL ID: 9t23h8pb4vd03
Plan Hash: 742887497
select * 
from
 ntts asd where asd.account='408050' and asd.userid='10000000557720'


call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch        2      0.04       0.04       5427       5433          0           1
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        4      0.04       0.04       5427       5433          0           1

Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 91  

Rows     Row Source Operation
-------  ---------------------------------------------------
      1  TABLE ACCESS FULL NTTS (cr=5433 pr=5427 pw=0 time=0 us cost=1504 size=51 card=1)


Elapsed times include waiting on following events:
  Event waited on                             Times   Max. Wait  Total Waited
  ----------------------------------------   Waited  ----------  ------------
  SQL*Net message to client                       2        0.00          0.00
  Disk file operations I/O                        1        0.00          0.00
  direct path read                              178        0.00          0.02
  SQL*Net message from client                     2        6.34          6.34
********************************************************************************

SQL ID: 06nvwn223659v
Plan Hash: 0
alter session set events '10046 trace name context off'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值