锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
閫氳繃浠ヤ笅鏂規(guī)硶鍙互鎶夾utotrace鐨勬潈闄愭巿浜圗veryone錛?br />濡傛灉浣犻渶瑕侀檺鍒禔utotrace鏉冮檺錛屽彲浠ユ妸瀵筽ublic鐨勬巿鏉冩敼涓哄鐗瑰畾user鐨勬巿鏉冦?
D:\oracle\ora92>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 鏄熸湡浜?6鏈?3 15:16:03 2003
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> connect sys as sysdba
璇瘋緭鍏ュ彛浠?
宸茶繛鎺ャ?br />SQL> [b]@?\rdbms\admin\utlxplan[/b]
琛ㄥ凡鍒涘緩銆?br />SQL> create public synonym plan_table for plan_table;
鍚屼箟璇嶅凡鍒涘緩銆?br />SQL> grant all on plan_table to public ;
鎺堟潈鎴愬姛銆?br />SQL>[b] @?\sqlplus\admin\plustrce[/b]
SQL>
SQL> drop role plustrace;
drop role plustrace
*
ERROR 浣嶄簬絎?1 琛?
ORA-01919: 瑙掕壊'PLUSTRACE'涓嶅瓨鍦?br />SQL> create role plustrace;
瑙掕壊宸插垱寤?br />SQL>
SQL> grant select on v_$sesstat to plustrace;
鎺堟潈鎴愬姛銆?br />SQL> grant select on v_$statname to plustrace;
鎺堟潈鎴愬姛銆?br />SQL> grant select on v_$session to plustrace;
鎺堟潈鎴愬姛銆?br />SQL> grant plustrace to dba with admin option;
鎺堟潈鎴愬姛銆?br />SQL>
SQL> set echo off
DBA鐢ㄦ埛棣栧厛琚巿浜堜簡plustrace瑙掕壊,鐒跺悗鎴戜滑鍙互鎶妏lustrace鎺堜簣public
榪欐牱鎵鏈夌敤鎴烽兘灝嗘嫢鏈塸lustrace瑙掕壊鐨勬潈闄?
SQL> [b]grant plustrace to public ;[/b]
鎺堟潈鎴愬姛銆?br />鐒跺悗鎴戜滑灝卞彲浠ヤ嬌鐢ˋutoTrace鐨勫姛鑳戒簡.
SQL> connect eqsp/eqsp
宸茶繛鎺ャ?br />SQL> set autotrace on
SQL> set timing on
SQL>
鍏充簬Autotrace鍑犱釜甯哥敤閫夐」鐨勮鏄?
SET AUTOTRACE OFF ---------------- 涓嶇敓鎴怉UTOTRACE 鎶ュ憡錛岃繖鏄己鐪佹ā寮?br />SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE鍙樉紺轟紭鍖栧櫒鎵ц璺緞鎶ュ憡
SET AUTOTRACE ON STATISTICS -- 鍙樉紺烘墽琛岀粺璁′俊鎭?br />SET AUTOTRACE ON ----------------- 鍖呭惈鎵ц璁″垝鍜岀粺璁′俊鎭?
SET AUTOTRACE TRACEONLY ------ 鍚宻et autotrace on錛屼絾鏄笉鏄劇ず鏌ヨ杈撳嚭
SQL> set autotrace traceonly
SQL> select table_name from user_tables;
宸查夋嫨98琛屻?br />宸茬敤鏃墮棿: 00: 00: 00.04
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 NESTED LOOPS
2 1 NESTED LOOPS (OUTER)
3 2 NESTED LOOPS (OUTER)
4 3 NESTED LOOPS (OUTER)
5 4 NESTED LOOPS (OUTER)
6 5 NESTED LOOPS
7 6 TABLE ACCESS (BY INDEX ROWID) OF 'OBJ$'
8 7 INDEX (RANGE SCAN) OF 'I_OBJ2' (UNIQUE)
9 6 TABLE ACCESS (CLUSTER) OF 'TAB$'
10 9 INDEX (UNIQUE SCAN) OF 'I_OBJ#' (NON-UNIQUE)
11 5 TABLE ACCESS (BY INDEX ROWID) OF 'OBJ$'
12 11 INDEX (UNIQUE SCAN) OF 'I_OBJ1' (UNIQUE)
13 4 INDEX (UNIQUE SCAN) OF 'I_OBJ1' (UNIQUE)
14 3 TABLE ACCESS (CLUSTER) OF 'USER$'
15 14 INDEX (UNIQUE SCAN) OF 'I_USER#' (NON-UNIQUE)
16 2 TABLE ACCESS (CLUSTER) OF 'SEG$'
17 16 INDEX (UNIQUE SCAN) OF 'I_FILE#_BLOCK#' (NON-UNIQUE)
18 1 TABLE ACCESS (CLUSTER) OF 'TS$'
19 18 INDEX (UNIQUE SCAN) OF 'I_TS#' (NON-UNIQUE)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
1389 consistent gets
0 physical reads
0 redo size
2528 bytes sent via SQL*Net to client
569 bytes received via SQL*Net from client
8 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
98 rows processed
SQL>
]]>
閫氳繃浠ヤ笅鏂規(guī)硶鍙互鎶夾utotrace鐨勬潈闄愭巿浜圗veryone錛?br />濡傛灉浣犻渶瑕侀檺鍒禔utotrace鏉冮檺錛屽彲浠ユ妸瀵筽ublic鐨勬巿鏉冩敼涓哄鐗瑰畾user鐨勬巿鏉冦?
D:\oracle\ora92>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 鏄熸湡浜?6鏈?3 15:16:03 2003
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> connect sys as sysdba
璇瘋緭鍏ュ彛浠?
宸茶繛鎺ャ?br />SQL> [b]@?\rdbms\admin\utlxplan[/b]
琛ㄥ凡鍒涘緩銆?br />SQL> create public synonym plan_table for plan_table;
鍚屼箟璇嶅凡鍒涘緩銆?br />SQL> grant all on plan_table to public ;
鎺堟潈鎴愬姛銆?br />SQL>[b] @?\sqlplus\admin\plustrce[/b]
SQL>
SQL> drop role plustrace;
drop role plustrace
*
ERROR 浣嶄簬絎?1 琛?
ORA-01919: 瑙掕壊'PLUSTRACE'涓嶅瓨鍦?br />SQL> create role plustrace;
瑙掕壊宸插垱寤?br />SQL>
SQL> grant select on v_$sesstat to plustrace;
鎺堟潈鎴愬姛銆?br />SQL> grant select on v_$statname to plustrace;
鎺堟潈鎴愬姛銆?br />SQL> grant select on v_$session to plustrace;
鎺堟潈鎴愬姛銆?br />SQL> grant plustrace to dba with admin option;
鎺堟潈鎴愬姛銆?br />SQL>
SQL> set echo off
DBA鐢ㄦ埛棣栧厛琚巿浜堜簡plustrace瑙掕壊,鐒跺悗鎴戜滑鍙互鎶妏lustrace鎺堜簣public
榪欐牱鎵鏈夌敤鎴烽兘灝嗘嫢鏈塸lustrace瑙掕壊鐨勬潈闄?
SQL> [b]grant plustrace to public ;[/b]
鎺堟潈鎴愬姛銆?br />鐒跺悗鎴戜滑灝卞彲浠ヤ嬌鐢ˋutoTrace鐨勫姛鑳戒簡.
SQL> connect eqsp/eqsp
宸茶繛鎺ャ?br />SQL> set autotrace on
SQL> set timing on
SQL>
鍏充簬Autotrace鍑犱釜甯哥敤閫夐」鐨勮鏄?
SET AUTOTRACE OFF ---------------- 涓嶇敓鎴怉UTOTRACE 鎶ュ憡錛岃繖鏄己鐪佹ā寮?br />SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE鍙樉紺轟紭鍖栧櫒鎵ц璺緞鎶ュ憡
SET AUTOTRACE ON STATISTICS -- 鍙樉紺烘墽琛岀粺璁′俊鎭?br />SET AUTOTRACE ON ----------------- 鍖呭惈鎵ц璁″垝鍜岀粺璁′俊鎭?
SET AUTOTRACE TRACEONLY ------ 鍚宻et autotrace on錛屼絾鏄笉鏄劇ず鏌ヨ杈撳嚭
SQL> set autotrace traceonly
SQL> select table_name from user_tables;
宸查夋嫨98琛屻?br />宸茬敤鏃墮棿: 00: 00: 00.04
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 NESTED LOOPS
2 1 NESTED LOOPS (OUTER)
3 2 NESTED LOOPS (OUTER)
4 3 NESTED LOOPS (OUTER)
5 4 NESTED LOOPS (OUTER)
6 5 NESTED LOOPS
7 6 TABLE ACCESS (BY INDEX ROWID) OF 'OBJ$'
8 7 INDEX (RANGE SCAN) OF 'I_OBJ2' (UNIQUE)
9 6 TABLE ACCESS (CLUSTER) OF 'TAB$'
10 9 INDEX (UNIQUE SCAN) OF 'I_OBJ#' (NON-UNIQUE)
11 5 TABLE ACCESS (BY INDEX ROWID) OF 'OBJ$'
12 11 INDEX (UNIQUE SCAN) OF 'I_OBJ1' (UNIQUE)
13 4 INDEX (UNIQUE SCAN) OF 'I_OBJ1' (UNIQUE)
14 3 TABLE ACCESS (CLUSTER) OF 'USER$'
15 14 INDEX (UNIQUE SCAN) OF 'I_USER#' (NON-UNIQUE)
16 2 TABLE ACCESS (CLUSTER) OF 'SEG$'
17 16 INDEX (UNIQUE SCAN) OF 'I_FILE#_BLOCK#' (NON-UNIQUE)
18 1 TABLE ACCESS (CLUSTER) OF 'TS$'
19 18 INDEX (UNIQUE SCAN) OF 'I_TS#' (NON-UNIQUE)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
1389 consistent gets
0 physical reads
0 redo size
2528 bytes sent via SQL*Net to client
569 bytes received via SQL*Net from client
8 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
98 rows processed
SQL>
]]>
闂錛氬湪drop procedure鐨勬椂鍊欏彂鐜頒竴鐩存病鍙嶅簲錛屾煡璇㈠師鍥?
SQL> conn sys/pwd@sid
宸茶繛鎺ャ?
SQL> oradebug username
ORA-00070: 鍛戒護(hù)gdyf鏃犳晥
SQL> oradebug setmypid
宸插鐞嗙殑璇彞
SQL> oradebug hanganalyze 3
Hang Analysis in d:\oracle\admin\oracle\udump\oracle_ora_3200.trc
鍐呭濡備笅錛?
Dump file d:\oracle\admin\oracle\udump\oracle_ora_3200.trc
Tue Mar 18 15:39:01 2008
ORACLE V9.2.0.5.0 - Production vsnsta=0
vsnsql=12 vsnxtr=3
Windows 2000 Version 5.0 Service Pack 4, CPU type 586
Oracle9i Enterprise Edition Release 9.2.0.5.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.5.0 - Production
Windows 2000 Version 5.0 Service Pack 4, CPU type 586
Instance name: oracle
Redo thread mounted by this instance: 1
Oracle process number: 82
Windows thread id: 3200, image: ORACLE.EXE
*** SESSION ID:(26.2234) 2008-03-18 15:39:01.390
*** 2008-03-18 15:39:01.390
==============
HANG ANALYSIS:
==============
Open chains found:
Chain 1 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :
聽聽聽聽<0/48/20150/0x45a2b2e8/3336/No Wait>
-- <0/40/11993/0x45a29c68/3284/library cache lock>
Other chains found:
Chain 2 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :
聽聽聽聽<0/8/1/0x45a1ca68/2796/wakeup time manager>
Chain 3 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :
聽聽聽聽<0/26/2234/0x45a2dc28/3200/No Wait>
Chain 4 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :
聽聽聽聽<0/29/2338/0x45a25528/672/db file sequential read>
Chain 5 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :
聽聽聽聽<0/30/23502/0x45a23728/3224/db file sequential read>
Chain 6 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :
聽聽聽聽<0/64/22233/0x45a1f3a8/1892/No Wait>
Chain 7 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :
聽聽聽聽<0/69/1878/0x45a1dd28/2084/No Wait>
Extra information that will be dumped at higher levels:
[level聽聽4] :聽聽 1 node dumps -- [REMOTE_WT] [LEAF] [LEAF_NW]
[level聽聽5] :聽聽 6 node dumps -- [SINGLE_NODE] [SINGLE_NODE_NW] [IGN_DMP]
[level聽聽6] :聽聽 1 node dumps -- [NLEAF]
[level 10] :聽聽73 node dumps -- [IGN]
State of nodes
([nodenum]/cnode/sid/sess_srno/session/ospid/state/start/finish/[adjlist]/predecessor):
[0]/0/1/1/0x4520da08/3160/IGN/1/2//none
[1]/0/2/1/0x45a652ac/2828/IGN/3/4//none
[2]/0/3/1/0x4520e378/1924/IGN/5/6//none
[3]/0/4/1/0x45a65c1c/3308/IGN/7/8//none
[4]/0/5/1/0x4520ece8/156/IGN/9/10//none
[5]/0/6/1/0x45a6658c/1884/IGN/11/12//none
[6]/0/7/1/0x4520f658/3064/IGN/13/14//none
[7]/0/8/1/0x45a66efc/2796/SINGLE_NODE/15/16//none
[8]/0/9/18325/0x4520ffc8/2496/IGN/17/18//none
[12]/0/13/17667/0x452112a8/1928/IGN/19/20//none
[13]/0/14/18771/0x45a68b4c/816/IGN/21/22//none
[14]/0/15/9177/0x45211c18/2816/IGN/23/24//none
[15]/0/16/16965/0x45a694bc/3108/IGN/25/26//none
[16]/0/17/19671/0x45212588/2724/IGN/27/28//none
[17]/0/18/25029/0x45a69e2c/3272/IGN/29/30//none
[18]/0/19/11291/0x45212ef8/3080/IGN/31/32//none
[19]/0/20/25825/0x45a6a79c/3164/IGN/33/34//none
[20]/0/21/26486/0x45213868/448/IGN/35/36//none
[21]/0/22/21584/0x45a6b10c/2316/IGN/37/38//none
[22]/0/23/37646/0x452141d8/3340/IGN/39/40//none
[23]/0/24/5364/0x45a6ba7c/1468/IGN/41/42//none
[24]/0/25/33844/0x45214b48/2920/IGN/43/44//none
[25]/0/26/2234/0x45a6c3ec/3200/SINGLE_NODE_NW/45/46//none
[26]/0/27/28532/0x452154b8/2848/IGN/47/48//none
[28]/0/29/2338/0x45215e28/672/SINGLE_NODE/49/50//none
[29]/0/30/23502/0x45a6d6cc/3224/SINGLE_NODE/51/52//none
[31]/0/32/17993/0x45a6e03c/2580/IGN/53/54//none
[32]/0/33/21925/0x45217108/2584/IGN/55/56//none
[33]/0/34/20841/0x45a6e9ac/1316/IGN/57/58//none
[34]/0/35/19307/0x45217a78/3076/IGN/59/60//none
[35]/0/36/19269/0x45a6f31c/3092/IGN/61/62//none
[36]/0/37/11711/0x452183e8/2908/IGN/63/64//none
[37]/0/38/29651/0x45a6fc8c/2156/IGN/65/66//none
[38]/0/39/13933/0x45218d58/3332/IGN/67/68//none
[39]/0/40/11993/0x45a705fc/3284/NLEAF/69/72/[47]/none
[40]/0/41/23604/0x452196c8/3280/IGN/73/74//none
[41]/0/42/30238/0x45a70f6c/3312/IGN/75/76//none
[43]/0/44/15405/0x45a718dc/2528/IGN/77/78//none
[45]/0/46/33109/0x45a7224c/1920/IGN/79/80//none
[47]/0/48/20150/0x45a72bbc/3336/LEAF_NW/70/71//39
[48]/0/49/30884/0x4521bc88/2436/IGN/81/82//none
[49]/0/50/17150/0x45a7352c/2620/IGN/83/84//none
[50]/0/51/24541/0x4521c5f8/2376/IGN/85/86//none
[51]/0/52/20825/0x45a73e9c/2924/IGN/87/88//none
[52]/0/53/8516/0x4521cf68/764/IGN/89/90//none
[53]/0/54/16868/0x45a7480c/3320/IGN/91/92//none
[55]/0/56/14359/0x45a7517c/3356/IGN/93/94//none
[56]/0/57/32976/0x4521e248/2624/IGN/95/96//none
[57]/0/58/30428/0x45a75aec/3212/IGN/97/98//none
[58]/0/59/12175/0x4521ebb8/3268/IGN/99/100//none
[59]/0/60/15084/0x45a7645c/3032/IGN/101/102//none
[60]/0/61/31222/0x4521f528/1912/IGN/103/104//none
[61]/0/62/20108/0x45a76dcc/2564/IGN/105/106//none
[62]/0/63/32235/0x4521fe98/3376/IGN/107/108//none
[63]/0/64/22233/0x45a7773c/1892/SINGLE_NODE_NW/109/110//none
[64]/0/65/27250/0x45220808/1948/IGN/111/112//none
[65]/0/66/33424/0x45a780ac/3252/IGN/113/114//none
[66]/0/67/41625/0x45221178/3360/IGN/115/116//none
[67]/0/68/33495/0x45a78a1c/2420/IGN/117/118//none
[68]/0/69/1878/0x45221ae8/2084/SINGLE_NODE_NW/119/120//none
[70]/0/71/7937/0x45222458/3380/IGN/121/122//none
[71]/0/72/18116/0x45a79cfc/1448/IGN/123/124//none
[72]/0/73/37603/0x45222dc8/2936/IGN/125/126//none
[73]/0/74/23965/0x45a7a66c/2480/IGN/127/128//none
[74]/0/75/7067/0x45223738/3300/IGN/129/130//none
[75]/0/76/8541/0x45a7afdc/1068/IGN/131/132//none
[76]/0/77/9178/0x452240a8/2360/IGN/133/134//none
[77]/0/78/25889/0x45a7b94c/2864/IGN/135/136//none
[78]/0/79/11006/0x45224a18/2996/IGN/137/138//none
[79]/0/80/19934/0x45a7c2bc/3384/IGN/139/140//none
[80]/0/81/24305/0x45225388/3136/IGN/141/142//none
[81]/0/82/27089/0x45a7cc2c/2744/IGN/143/144//none
[82]/0/83/15792/0x45225cf8/3236/IGN/145/146//none
[83]/0/84/19887/0x45a7d59c/2788/IGN/147/148//none
[86]/0/87/20152/0x45226fd8/2284/IGN/149/150//none
[87]/0/88/7617/0x45a7e87c/2776/IGN/151/152//none
[88]/0/89/33192/0x45227948/3248/IGN/153/154//none
[89]/0/90/22038/0x45a7f1ec/2652/IGN/155/156//none
[90]/0/91/31249/0x452282b8/2852/IGN/157/158//none
[91]/0/92/15647/0x45a7fb5c/3088/IGN/159/160//none
[92]/0/93/3053/0x45228c28/3100/IGN/161/162//none
=================
END OF HANG ANALYSIS
=================
鍙戠幇鏄涓嬪嚭鐜伴棶棰橈細(xì)
Chain 1 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :
聽聽聽聽<0/48/20150/0x45a2b2e8/3336/No Wait>
-- <0/40/11993/0x45a29c68/3284/library cache lock>
褰撳墠drop鐨剆ession涓?0錛岀劧鍚庢煡璇?8鐨剆ession錛屽眳鐒舵槸鍓嶉潰鍋氶噸緙栬瘧鏃跺欐湭鎴愬姛閫鍑虹殑涓涓猄ESSION
鐒跺悗orakill 榪欎釜session鍚庢甯竏rop瀹屾垚
]]>
SQL> SELECT /*+ RULE */ a.userid,
2 b.name,
3 b.depart_name
4 FROM tf_f_yhda a,
5 tf_f_depart b
6 WHERE a.userid=b.userid;
4銆佷負(fù)浠涔堟湁鏃朵竴涓〃鐨勬煇涓瓧孌墊槑鏄庢湁绱㈠紩,褰撹瀵熶竴浜涜鐨勬墽琛岃鍒掔‘涓嶈蛋绱㈠紩鍛紵濡備綍瑙e喅鍛?錛?br />
A銆佷笉璧扮儲寮曞ぇ浣撴湁浠ヤ笅鍑犱釜鍘熷洜
鈾浣犲湪Instance綰у埆鎵鐢ㄧ殑鏄痑ll_rows鐨勬柟寮?
鈾浣犵殑琛ㄧ殑緇熻淇℃伅(鏈鍙兘鐨勫師鍥?
鈾浣犵殑琛ㄥ緢灝?涓婃枃鎻愬埌榪囩殑,Oracle鐨勪紭鍖栧櫒璁や負(fù)涓嶅煎緱璧扮儲寮曘?
B銆佽В鍐蟲柟娉?br />鈾鍙互淇敼init<SID>.ora涓殑OPTIMIZER_MODE榪欎釜鍙傛暟,鎶婂畠鏀逛負(fù)Rule鎴朇hoose,閲嶈搗鏁版嵁搴撱備篃鍙互浣跨敤4涓墍鎻愮殑Hint.
鈾鍒犻櫎緇熻淇℃伅
SQL>analyze table table_name delete statistics;
鈾琛ㄥ皬涓嶈蛋绱㈠紩鏄鐨?涓嶇敤璋冪殑銆?br />
5銆佸叾瀹冪浉鍏?br />
A銆佸浣曠湅涓涓〃鎴栫儲寮曟槸鍚︽槸緇熻淇℃伅
SQL>SELECT * FROM user_tables
2 WHERE table_name=<table_name>
3 AND num_rows is not null;
SQL>SELECT * FROM user_indexes
2 WHERE table_name=<table_name>
3 AND num_rows is not null;
b銆佸鏋滄垜浠厛鐢–BO鐨勬柟寮?鎴戜滑搴斿強(qiáng)鏃跺幓鏇存柊琛ㄥ拰绱㈠紩鐨勭粺璁′俊鎭?浠ュ厤鐢熷艦涓嶅垏鍚堝疄鐨勬墽琛岃鍒掋?
SQL> ANALYZE TABLE table_name COMPUTE STATISTICS;
SQL> ANALYZE INDEX index_name ESTIMATE STATISTICS;
鍏蜂綋鐨凙NALYZE璇彞璇峰弬鐓racle8i/9i 鐨剅efrence鏂囨。銆?br /><================end of file鈥淥racle鐨勪紭鍖栧櫒(Optimizer)鈥?====================>
涓嬮潰鐨勬槸鎴戠殑鍏充簬涓鐐規(guī)墽琛岃鍒掔殑鐞嗚В錛?/p>
1銆傞鍏堣鍚姩trace鐨勯夐」錛?br />set autotrace trace eXPlain
濡傛灉鍑虹幇涓嬮潰鐨勯敊璇細(xì)
SQL>聽 set autotrace trace explain
SP2-0613: Unable to verify PLAN_TABLE format or existence
SP2-0611: Error enabling EXPLAIN report
閭d箞瑕佸厛榪愯涓嬮潰鐨勮鍙ワ細(xì)
聽@?/rdbms/admin/utlxplan.sql錛?/p>
2銆傚垎鏋愪笅闈㈢殑鎵ц璁″垝錛?/p>
SQL> select ename,dname聽聽聽 from emp, dept聽聽 where emp.deptno=dept.deptno聽聽聽聽 and dept.dname in ('ACCOUNTING','RESEARCH','SALES','OPERATIONS');
Execution Plan
----------------------------------------------------------
聽聽 0聽聽聽聽聽 SELECT STATEMENT Optimizer=CHOOSE
聽聽 1聽聽聽 0聽聽 NESTED LOOPS
聽聽 2聽聽聽 1聽聽聽聽 TABLE Access (FULL) OF 'EMP'
聽聽 3聽聽聽 1聽聽聽聽 TABLE ACCESS (BY INDEX ROWID) OF 'DEPT'
聽聽 4聽聽聽 3聽聽聽聽聽聽 INDEX (UNIQUE SCAN) OF 'PK_DEPT' (UNIQUE)
鍏充簬鍓嶉潰鐨勪袱涓暟瀛楋紝絎竴涓槸鐘舵両D,絎簩涓槸鐖禝D銆?br />灝辨槸濡備笅鎵紺猴細(xì)0-->1-->2
聽聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽聽聽聽
聽聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 -->3-->4
鍦ㄤ笂鍥鵑噷錛?鐨勬墽琛屼緷闈?錛?鐨勬墽琛屽張渚濊禆2鍜?錛?鏄病鏈夊瓙ID鐨勶紝鎵浠?鏈鍏堟墽琛岋紝鐒跺悗鏄?錛屽湪鐒跺悗鏄?錛涚劧鍚?鍜?鐨勭粨鏋滀紶鍥?銆?br />鍦ㄨ繖涓噷闈?琛屾湁涓瓧鈥淥ptimizer=CHOOSE鈥濓紝榪欎釜灝辨槸涓婃枃璇寸殑閭d釜oracle鐨勪紭鍖栧櫒浜嗐?br />榪樻湁錛岀湅榪欎釜鈥?INDEX (UNIQUE SCAN) OF 'PK_DEPT' (UNIQUE)鈥濓紝灝辯煡閬撹繖涓鍙ヨ繍琛岀殑鏃跺欐槸璧癐NDEX鐨勩?/p>