¼Â¹Ô·×²è¤Î¸«Êý †
------------------------------------------------------
| Id | Operation | Name |¡¡¼Â¹Ô½ç½ø
------------------------------------------------------¡¡
| 0 | SELECT STATEMENT | |¡¡8¡¡SELECTʸ¤Î·ë²Ì¤È¤·¤Æ½ÐÎÏ
| 1 | MERGE JOIN CARTESIAN | |¡¡7¡¡5 6¤ÇºîÀ®¤·¤¿É½¤òCROSS·ë¹ç
| 2 | NESTED LOOPS | |¡¡5¡¡2 3¤ÇºîÀ®¤·¤¿É½¤ò NESTED LOOPS¤Ç·ë¹ç
| 3 | TABLE ACCESS BY INDEX ROWID| DEPT |¡¡2¡¡1 ¤Ç¹Ê¤ê¹þ¤ó¤À DEPTɽ ¤Î¹Ô¤ò¼èÆÀ¤¹¤ë
|* 4 | INDEX UNIQUE SCAN | PK_DEPT |¡¡1¡¡PK_DEPTº÷°ú ¤Ç¹Ê¤ê¹þ¤à
|* 5 | TABLE ACCESS FULL | EMPLOYEES |¡¡3¡¡EMPLOYEESɽ ¤ò FULL¥¹¥¥ã¥ó
| 6 | BUFFER SORT | |¡¡6¡¡4 ¤Ç¼èÆÀ¤·¤¿¥Æ¡¼¥Ö¥ë¤ò¥½¡¼¥È¡©
|* 7 | TABLE ACCESS FULL | EMP |¡¡4¡¡EMPɽ ¤òFULL¥¹¥¥ã¥ó
------------------------------------------------------
- ¥¤¥ó¥Ç¥ó¥È¤¬¿¼¤¤¤â¤Î¤«¤é¼Â¹Ô¤µ¤ì¤ë
- Ʊ¤¸³¬ÁؤΤâ¤Î¤Ï¾å°Ì¤Ë¤¢¤ë¤â¤Î¤«¤é¼Â¹Ô¤µ¤ì¤ë
- *¤¬ÉÕÍ¿¤·¤Æ¤ë¤Î¤Ï¥Õ¥£¥ë¥¿
¼Â¹Ô·×²è¤Î¼èÆÀ †
ľÁ°¤Ë¼Â¹Ô¤µ¤ì¤¿SQLʸ¤Î¼Â¹Ô·×²è¼èÆÀ
set serveroutput off
set line 10000 pages 0
-- ¼ÂºÝ¤Î¹Ô¿ô¤ä»þ´Ö¹àÌܤò½ÐÎϤ¹¤ë¤è¤¦¤Ë¤¹¤ë¡ÊV$SQL_PLAN_STATISTICS¥Ó¥å¡¼¤ËÅý·×¾ðÊó¤ò½ÐÎÏ¡Ë
alter session set statistics_level=all;
-- ¼Â¹Ô·×²è¤ò¼èÆÀ¤·¤¿¤¤SQL¤ò¼Â»Ü
select 1 from dual;
-- ľÁ°¤Ë¼Â»Ü¤µ¤ì¤¿¼Â¹Ô·×²è¤Î¾ðÊó¤ò½ÐÎÏ
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(format=>'ALL ALLSTATS LAST'));
format»ØÄê | ÀâÌÀ |
IOSTATS | I/O¤Ë´Ø¤¹¤ë¼Â¹ÔÅý·×¤òɽ¼¨ |
MEMSTATS | ¥á¥â¥ê¤Ë´Ø¤¹¤ë¼Â¹ÔÅý·×¤òɽ¼¨ |
ALLSTATS | IOSTATS¤ÈMEMSTATS¤ÎξÊý¤ò»ØÄê |
LAST | ºÇ¸å¤Ë¼Â¹Ô¤·¤¿SQL¤òɽ¼¨¡£»ØÄꤷ¤Ê¤¤¾ì¹ç¤ÏƱ°ìSQLʸ¤ÎÁ´¼Â¹Ô¤ò½¸·×ɽ¼¨ |
¥«¡¼¥½¥ë¥¥ã¥Ã¥·¥å¤«¤é¼Â¹Ô·×²è¤ò¼èÆÀ
-- v$sql ¤Ê¤É¤«¤é sqlid ¤È child_number ¤ò¼èÆÀ¤·¤Æ¼Â¹Ô¡Êchild_number¾Êά¤¹¤ë¤È 0 ¤Ë¤Ê¤ë¡Ë
SELECT * FROM table(DBMS_XPLAN.DISPLAY_CURSOR('SQLID', CHILD_NUMBER, 'ALL ALLSTATS LAST'));
-- ¾åµSQL¤ò°ì³ç¤ÇºîÀ®¤¹¤ë¾ì¹ç
select distinct 'SELECT * FROM table(DBMS_XPLAN.DISPLAY_CURSOR(''' || sql_id || ''',' || child_number || ',''' || 'ALL ALLSTATS LAST''));' from GV$SQL;
(¼Â¹ÔÎã)
SQL> SELECT * FROM table(DBMS_XPLAN.DISPLAY_CURSOR('520mkxqpf15q8', 0, 'ALL ALLSTATS LAST'));
SQL_ID 520mkxqpf15q8, child number 0
-------------------------------------
select 1 from dual
Plan hash value: 1388734953
-------------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts | E-Rows | Cost (%CPU)| E-Time | A-Rows | A-Time |
-------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | | 2 (100)| | 1 |00:00:00.01 |
| 1 | FAST DUAL | | 1 | 1 | 2 (0)| 00:00:01 | 1 |00:00:00.01 |
-------------------------------------------------------------------------------------------------
AWR¤«¤é¤Î¼Â¹Ô·×²è¼èÆÀ
SELECT PLAN_TABLE_OUTPUT FROM table(DBMS_XPLAN.DISPLAY_AWR('SQL_ID',null,null,'ALL ALLSTATS LAST'));
AWR¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤Ë´Þ¤Þ¤ì¤ëSQLʸ¤«¤é¼Â¹Ô·×²è¤ò¼èÆÀ¤¹¤ë¡£
AWR¤ÎSQL¤Ïtopnsql¤ÎÈÏ°ÏÆâ¤Î¤ß¼èÆÀ¤¹¤ë¡£MODIFY_SNAPSHOT_SETTING¥×¥í¥·¡¼¥¸¥ã¤Ç¡¢topnsql¤ÎÊѹ¹¤¬²Äǽ¡£
EXPLAIN PLANʸ
EXPLAIN PLAN FOR <Ǥ°Õ¤ÎSQLʸ>
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
½ÐÎÏ·ë²Ì †
¸«ÀѤâ¤ê | ÀâÌÀ |
E-Rows | ¸«ÀѤâ¤ê·ï¿ô |
E-Time | ¸«ÀѤâ¤ê»þ´Ö |
OMem | Optimal¤Ç¼Â¹Ô¤¹¤ë¤¿¤á¤ËɬÍפȸ«ÀѤâ¤Ã¤¿¥á¥â¥ê¡¦¥µ¥¤¥º |
1Mem | 1-pass¤Ç¼Â¹Ô¤¹¤ë¤¿¤á¤ËɬÍפȸ«ÀѤâ¤Ã¤¿¥á¥â¥ê¡¦¥µ¥¤¥º |
E-Temp | °ì»þ»þÎΰè¤Î¸«ÀѤâ¤ê»ÈÍÑÎÌ |
¼Â¹ÔÅý·× | ÀâÌÀ |
Starts | ¤½¤Î¥¹¥Æ¥Ã¥×¤¬¼Â¹Ô¤µ¤ì¤¿²ó¿ô |
A-Rows | ½èÍý¹Ô¿ô |
A-Time | ¼Â¹Ô»þ´Ö |
Buffers | ¥Ð¥Ã¥Õ¥¡¡¦¥¢¥¯¥»¥¹¿ô |
Reads | ¥Ç¥£¥¹¥¯¤«¤éÆɤ߹þ¤Þ¤ì¤¿¥Ö¥í¥Ã¥¯¿ô |
Writes | ¥Ç¥£¥¹¥¯¤Ë½ñ¤½Ð¤µ¤ì¤¿¥Ö¥í¥Ã¥¯¿ô |
Used-Mem | »ÈÍѤ·¤¿¥á¥â¥ê¡¦¥µ¥¤¥º¤È½èÍýÊýË¡(0:Optimal¡¡1:1-pass¡¡>1:Multi-pass) |
O/1/M | Optimal¡¢1-pass¡¢Multi-pass¤Ç¤½¤ì¤¾¤ì¼Â¹Ô¤µ¤ì¤¿²ó¿ô |
Used-Tmp | »ÈÍѤ·¤¿°ì»þ¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º |
Max-Tmp | »ÈÍѤ·¤¿°ì»þ¥»¥°¥á¥ó¥È¤ÎºÇÂ祵¥¤¥º |
¢¨ ¥µ¥¤¥º¤Îñ°Ì¤ÏKbyte¡ÊK¤Îɽ¼¨¤¬¤Ê¤¯¤Æ¤â¡Ë
¢¨ Optimal¤Ï¥á¥â¥êÆâ¤ÇÁ´¤Æ¤Îºî¶È¤ò½ª¤¨¤ë¤³¤È
¡¡ 1-pass¤ÏÃæ´Ö¥Ç¡¼¥¿¤ò°ìÃʳ¬¥Ç¥£¥¹¥¯¤ËÂàÈò¤·¤Æ¥Þ¡¼¥¸
¡¡ Multi-pass¤ÏÃæ´Ö¥Ç¡¼¥¿¤òÆóÃʳ¬°Ê¾å¥Ç¥£¥¹¥¯¤ËÂàÈò¤·¤Æ¥Þ¡¼¥¸
AUTOTRACE †
¼Â¹Ô·×²è¤ä¡¢¼Â¹ÔÅý·×¤ò¼èÆÀ¤¹¤ë¡£¤¿¤À¤·DDL¤Ï¼èÆÀ¤Ç¤¤Ê¤¤¡£DDL¤Î¼Â¹Ô·×²è¤ò¼èÆÀ¤¹¤ë¤Ë¤Ï¡¢EXPLAIN PLAN FOR ¤ò»È¤¦¡£
¼Â¹ÔÅý·×¤ò½ÐÎϤ¹¤ë¤Ë¤Ï¡¢PLUSTRACE¥í¡¼¥ë¤¬É¬ÍסÊplustrce.sql¤Î¼Â¹Ô¡Ë
SET AUTOTRACE { OFF | ON | TRACEONLY } [EXPLAIN] [STATISTICS]
¥ª¥×¥·¥ç¥ó | ÀâÌÀ |
EXP[LAIN] | ¼Â¹Ô·×²è¤Î¤ß¥ì¥Ý¡¼¥È½ÐÎϤ¹¤ë |
STAT[ISTICS] | ¼Â¹ÔÅý·×¤Î¤ß¥ì¥Ý¡¼¥È½ÐÎϤ¹¤ë |
TRACE[ONLY] | ¥Ç¡¼¥¿¤ò¥Õ¥§¥Ã¥Á¤¹¤ë¤¬¡¢·ë²Ì¤ò½ÐÎϤ»¤º¤Ë¼Â¹Ô·×²è¡¢¼Â¹ÔÅý·×¤ò¥ì¥Ý¡¼¥È½ÐÎϤ¹¤ë |
¼Â¹ÔÅý·× | ÀâÌÀ |
recursive calls | SQL¼Â¹Ô»þ¤ËÆâÉô¤Çȯ¹Ô¤µ¤ì¤¿¥ê¥«¡¼¥·¥Ö¥³¡¼¥ë¿ô |
db block gets | DMLÅù¤òȯ¹Ô¤·¤¿¤È¤¤Ê¤É¤ËȯÀ¸¤¹¤ë¥«¥ì¥ó¥È¥â¡¼¥É¤ÇÆɤ߹þ¤Þ¤ì¤¿¥Ö¥í¥Ã¥¯¿ô |
consistent gets | SELECT¤òȯ¹Ô¤·¤¿¤È¤¤Ê¤É¤ËȯÀ¸¤¹¤ëÆɤ߼è¤ê°ì´ÓÀ¥â¡¼¥É¤ÇÆɤ߹þ¤Þ¤ì¤¿¥Ö¥í¥Ã¥¯¿ô |
physical reads | ¥Ç¥£¥¹¥¯¥¢¥¯¥»¥¹¤Ë¤è¤Ã¤ÆÆɤ߹þ¤Þ¤ì¤¿¥Ö¥í¥Ã¥¯¿ô |
redo size | REDO¥í¥°¤Ë½ñ¤¹þ¤Þ¤ì¤¿¥µ¥¤¥º¡Êbyte¡Ë |
bytes sent via SQL*Net to client | ¥¯¥é¥¤¥¢¥ó¥È¤ØÁ÷¤é¤ì¤¿¹ç·×byte¿ô |
bytes received via SQL*Net from client | ¥¯¥é¥¤¥¢¥ó¥È¤«¤é¼õ¿®¤·¤¿¹ç·×byte¿ô |
SQL*Net roundtrips to/from client | ¥¯¥é¥¤¥¢¥ó¥È¤ËÁ÷¼õ¿®¤µ¤ì¤¿Net¥á¥Ã¥»¡¼¥¸¤Î¹ç·×¿ô |
sorts (memory) | ¥á¥â¥ê¥½¡¼¥È²ó¿ô |
sorts (disk) | ¥Ç¥£¥¹¥¯¥½¡¼¥È²ó¿ô |
rows processed | SQL¤¬½èÍý¤·¤¿·ï¿ô |
¥¢¥¯¥»¥¹¥Ñ¥¹ †
¥¢¥¯¥»¥¹¥Ñ¥¹ | ¡ | ¢ | £ | ¤ | ¥ | ÀâÌÀ |
TABLE ACCESS FULL | ¡û | ¡ß | ¡ß | ¡ß | ¡û | ɽ¤ò¹½À®¤¹¤ë¤¹¤Ù¤Æ¤Î¥Ö¥í¥Ã¥¯¤Ë¥¢¥¯¥»¥¹¡Êɽ¤ÎÂçÉôʬ¤Ë¥¢¥¯¥»¥¹¤¹¤ë»þ¤ËºÇŬ¡Ë |
INDEX RANGE SCAN | ¡ß | ¡û | ¡û | ¡û | ¡ß | º÷°ú¤ËÂФ·¤ÆÈϰϸ¡º÷¤ò¹Ô¤¦¡Êɽ¤Î10%°Ê²¼¤Î¥Ç¡¼¥¿¤Î¾ì¹ç¤ËºÇŬ¡Ë |
INDEX UNIQUE SCAN | ¡ß | ¡û | ¡û | ¡û | ¡ß | °ì°Õº÷°ú¤ËÂФ·¤Æ1¹Ôʸ¤Î¥Ç¡¼¥¿¤ÎROWID¤ò¼èÆÀ |
TABLE ACCESS BY INDEX ROWID | ¡ß | ¡û | ¡û | ¡û | ¡ß | INDEX RANGE SCAN¤äINDEX UNIQUE SCAN¤Ë¤è¤Ã¤Æ¼èÆÀ¤µ¤ì¤¿ÂоݹԤÎROWID¤ò»ÈÍѤ·¡¢³ºÅöɽ¤Ë¥¢¥¯¥»¥¹¤·¥Ç¡¼¥¿¼èÆÀ¤ò¹Ô¤¦ ɬ¤ºINDEX SCAN¤È¥»¥Ã¥È¤Ç½ÐÎϤµ¤ì¤ë |
INDEX FULL SCAN | ¡ß | ¡û | ¡û | ¡û | ¡ß | º÷°ú¤òÁ´¤ÆÆɤ߹þ¤ó¤Ç¥Ç¡¼¥¿¼èÆÀ¤¹¤ë¡£ º÷°ú¥µ¥¯¥»¥¹¤À¤±¤ÇɬÍפʥǡ¼¥¿¤¬¼èÆÀ¤Ç¤¤ë¾ì¹ç¤ËÁªÂò¤µ¤ì¤ë¡ÊINDEX FULL SCAN¸å¤Ïɽ¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡Ë |
INDEX FAST FULL SCAN | ¡û | ¡ß | ¡ß | ¡ß | ¡û | INDEX FULL SCAN¤ÈƱ¤¸¤À¤¬¡¢1²ó¤ÎÆɤ߹þ¤ß¤ÇÊ£¿ô¤Îº÷°ú¥Ö¥í¥Ã¥¯¤òÆɤ߹þ¤à |
¡ °ìÅÙ¤ÎÆɤ߹þ¤ß¤Ç¡¢db_file_multiblock_read_count½é´ü²½¥Ñ¥é¥á¡¼¥¿¤Ç»ØÄꤵ¤ì¤¿¿ô¤ÎϢ³¤·¤¿¥Ö¥í¥Ã¥¯¤ò¤Þ¤È¤á¤ÆÆɤ߹þ¤à
¢ °ìÅÙ¤ÎÆɤ߹þ¤ß¤Ç¡¢1¤Ä¤Î¥Ö¥í¥Ã¥¯¤òÆɤ߹þ¤à
£ ¥Ç¥£¥¹¥¯¤«¤éÆɤ߹þ¤ó¤À¥Ö¥í¥Ã¥¯¤ò¤¹¤Ù¤Æ¥Ð¥Ã¥Õ¥¡¥¥ã¥Ã¥·¥å¤Ë¾è¤»¤ë
¤ ¥½¡¼¥È¤µ¤ì¤¿¾õÂ֤ǥǡ¼¥¿¤ò¼èÆÀ¤Ç¤¤ë
¥ ¥Ñ¥é¥ì¥ë¼Â¹Ô¤¬¤Ç¤¤ë
·ë¹ç¥¢¥ë¥´¥ê¥º¥à †
·ë¹ç | ÀâÌÀ |
NESTED LOOPS | ·ë¹çÂоݤȤʤëɽ¤ÎÃê½Ð¥ì¥³¡¼¥É¤¬Èó¾ï¤Ë¾¯¤Ê¤¤»þ¤Ë¸ú²ÌŪ¡ÊÆâÉôɽ¤Ø¤Î¥¢¥¯¥»¥¹¤òINDEX¤Ç¹Ê¤ê¹þ¤á¤Ê¤¤¾ì¹ç¤Ï¡¢¥¯¥í¥¹·ë¹ç¤ÈƱ¤¸¤Ë¤Ê¤ë¡Ë ÆâÉôɽ¤Î¥ì¥³¡¼¥É¹Ê¤ê¹þ¤ß¤òÇ¡²¿¤Ë¾¯¤Ê¤¯¤¹¤ë¤«¤¬½ÅÍס£¤Þ¤¿¥á¥â¥ê»ÈÍÑΨ¤¬¾¯¤Ê¤¤ ÈÝÄê¾ò·ï¡Ê<>¡¢!=¡Ë¤¬ÍøÍѤǤ¤ëÍ£°ì¤Î¥¢¥ë¥´¥ê¥º¥à |
HASH JOIN | ·ë¹çÂоݤȤʤëɽ¤ÎÃê½Ð¥ì¥³¡¼¥É¤¬Èó¾ï¤Ë¿¤¤¾ì¹ç¤Ë͸ú¡Ê¥Õ¥ë¥¹¥¥ã¥óƱ»Î¤Î·ë¹ç¤Ê¤É¡Ë Åù²Á¾ò·ï¤Î¤ß¤Ç»ÈÍѲÄǽ¡£¤Þ¤¿¥Ñ¥é¥ì¥ë¥¯¥¨¥ê¤Ç·ë¹çÂоÝɽ¤òÆɤ߹þ¤á¤ë ¾®¤µ¤¤É½¤Î·ë¹ç¥¡¼¤ò¥Ï¥Ã¥·¥å´Ø¿ô¤ò»ÈÍѤ·¥Ï¥Ã¥·¥åÃͤËÊÑ´¹¡£¤â¤¦°ìÊý¤ÎÂ礤¤¥Æ¡¼¥Ö¥ë¤ò¥¹¥¥ã¥ó¤··ë¹ç¥¡¼¤¬¤½¤Î¥Ï¥Ã¥·¥å¤Ë¸ºß¤¹¤ë¤«Ä´¤Ù¤ë ¥Ï¥Ã¥·¥åɽ¤ÏPGA¤ËÊݸ¤¹¤ë°Ù¡¢¾®¤µ¤¤É½¤ò¥Ï¥Ã¥·¥åɽ¤Ë¤·¤¿Êý¤¬¥á¥â¥ê»ÈÍÑÎ̤¬ÍÞ¤¨¤é¤ì¤ë¡Ê¥á¥â¥êÉÔ¤ξì¹ç¡¢DISK¤ËºîÀ®¤·¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹Îô²½¤¹¤ë¡Ë |
MERGE JOIN SORT JOIN | ·ë¹çÂоݤȤʤëɽ¤¬¡¢·ë¹çÂоÝÎó¤Ç¥½¡¼¥È¤··ë¹ç¤¹¤ë¡£ÉÔÅù¹æ¤ò»È¤Ã¤¿·ë¹ç¤âÍøÍѲÄǽ¡ÊÈÝÄê(!=)¤ÏÉÔ²Ä¡Ë ¥Æ¡¼¥Ö¥ë¤ò¥½¡¼¥È¤¹¤ë°Ù¡¢ÊÒÊý¤Î¥Æ¡¼¥Ö¥ë¤òÁ´¤Æ¥¹¥¥ã¥ó¤·¤¿¤È¤³¤í¤Ç·ë¹ç¤ò½ªÎ»¤Ç¤¤ë¡£ ¥½¡¼¥È¤Î¥³¥¹¥È¤¬¹â¤¤°Ù¡¢¥½¡¼¥È¤ò¥¹¥¥Ã¥×¤Ç¤¤ë¥±¡¼¥¹¤Ç¤Ï͸ú¤È¤Ê¤êÆÀ¤ë¡ÊÂç³µNESTED LOOP ¤« HASH¤ò»È¤¦¡Ë |
MERGE JOIN CARTESIAN | ·ë¹ç¾ò·ï¤¬ÉÔ½½Ê¬¤Ê»þ¤ËÁªÂò¤µ¤ì¤ëľÀÑ·ë¹ç |
NESTED LOOPS †
select /*+ USE_NL (e d) */ e.fname, d.product from emp e, dept d
where e.lname = 'ÀîÀ¡' and e.id = d.id
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 114 | 6 (0)| 00:00:01 |
| 1 | NESTED LOOPS | | | | | |
| 2 | NESTED LOOPS | | 2 | 114 | 6 (0)| 00:00:01 |
| 3 | TABLE ACCESS FULL | EMP | 3 | 90 | 3 (0)| 00:00:01 |¡¡¡ú¶îưɽ¡ÊFULLSCAN¡Ë
|* 4 | INDEX UNIQUE SCAN | PK_DEPTID | 1 | | 0 (0)| 00:00:01 |¡¡¡úÆâÉôɽ¤Ø¤Ï·ë¹ç¥¡¼¤ÎINDEX¤Ç¥¢¥¯¥»¥¹
|* 5 | TABLE ACCESS BY INDEX ROWID| DEPT | 1 | 27 | 1 (0)| 00:00:01 |
NESTED LOOPS SEMI †
EXISTS¶ç ¤Þ¤¿¤Ï IN¶ç¤ò»ÈÍѤ·¤¿¾ì¹ç¤Î¤ß½Ð¸½¤¹¤ë¡£
·ë²Ì¤Ë¤Ï¶îưɽ¤È¤Ê¤ë¥Æ¡¼¥Ö¥ë¤Î¥Ç¡¼¥¿¤·¤«´Þ¤Þ¤ì¤º¡¢1¹Ô¤Ë¤Ä¤É¬¤º1¹Ô¤·¤«·ë²Ì¤¬À¸À®¤µ¤ì¤Ê¤¤¡ÊÄ̾ï¤Î·ë¹ç¤Î¾ì¹ç¡¢1ÂÐN¤Î·ë¹ç¤Î¾ì¹ç¤Ï¹Ô¿ô¤¬Áý¤¨¤ë¤³¤È¤¬¤¢¤ë¡Ë
ÆâÉôɽ¤Ë¥Þ¥Ã¥Á¤¹¤ë¹Ô¤ò1¹Ô¤Ç¤âȯ¸«¤·¤¿»þÅÀ¤Ç»Ä¤ê¤Î¹Ô¤Î¸¡º÷¤òÂǤÁÀÚ¤ì¤ë¤¿¤á¡¢Ä̾ï¤Î·ë¹ç¤è¤ê¤â¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬Îɤ¤¡£
²¼µ¤ÏƱ¤¸·ë²Ì¤Ë¤Ê¤ë¤¬¡¢¸å¼Ô¤ÎSQL¤Ï NESTED LOOPS SEMI ¤ò»ÈÍѤ¹¤ë¡£
select d.id, d.product from DEPT d inner join EMP e on d.id=e.id
select * from DEPT d where exists ( select * from EMP e where d.id=e.id)
NESTED LOOPS ANTI †
NOT EXISTS¶ç ¤Þ¤¿¤Ï NOT IN¶ç¤ò»ÈÍѤ·¤¿¾ì¹ç¤Î¤ß½Ð¸½¤¹¤ë¡£
ÆâÉôɽ¤Ë¥Þ¥Ã¥Á¤¹¤ë¹Ô¤ò1¹Ô¤Ç¤âȯ¸«¤·¤¿»þÅÀ¤Ç»Ä¤ê¤Î¹Ô¤Î¸¡º÷¤òÂǤÁÀÚ¤ë¤È¤³¤í¤Þ¤ÇƱ¤¸Æ°ºî¡£
¤½¤Î¹Ô¤Ë¤Ä¤¤¤Æ¤Ï¶îưɽ¤Î¹Ô¤ò·ë²Ì¤«¤é½ü³°¤¹¤ë¡£
HASH JOIN †
select /*+ USE_HASH (e d) */ e.fname, d.product from emp e, dept d
where e.lname = 'ÀîÀ¡' and e.id = d.id
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 114 | 7 (15)| 00:00:01 |
|* 1 | HASH JOIN | | 2 | 114 | 7 (15)| 00:00:01 |
|* 2 | TABLE ACCESS FULL| EMP | 2 | 54 | 3 (0)| 00:00:01 |¡¡¡úEMP¤Î·ë¹ç¥¡¼¤Ç¥Ï¥Ã¥·¥åɽºîÀ®
| 3 | TABLE ACCESS FULL| DEPT | 3 | 90 | 3 (0)| 00:00:01 |¡¡¡ú¥Ï¥Ã¥·¥åÃͤ˥ޥåÁ¤¹¤ë·ë¹ç¥¡¼¤¬¤¢¤ë¤«¥Á¥§¥Ã¥¯
HINT¶ç †
/*+ HINT¶ç */
HINT¶ç | ÀâÌÀ |
INDEX_FFS(ɽ̾ Pkey) | Ê£¿ô¤Îº÷°ú¥Ö¥í¥Ã¥¯¤ò¥Ñ¥é¥ì¥ë½èÍý¤Ë¤ÆÆɤ߹þ¤à¡Ê½ç½ø¤¬Êݾڤµ¤ì¤Ê¤¤°Ù¡¢¥×¥é¥¤¥Þ¥ê¥¡¼»ØÄê²Äǽ¤Êɽ¤Î count(*) ¤ò¼èÆÀ¤¹¤ë¾ì¹ç¤Ê¤É¤ËÍøÍѤ¹¤ë¡Ë select /*+ INDEX_FFS(ɽ̾ PKey) */ count(*) from ɽ̾; |
PARALLEL(ɽ̾, ÊÂÎóÅÙÅÙ) | ÊÂÎó½èÍý¤ò¹Ô¤¦¡£RAC¹½À®¤ÎÊ£¿ô¥Î¡¼¥É¤Î¾ì¹ç¡¢¥¤¥ó¥¿¡¼¥³¥Í¥¯¥È¤¬È¯À¸¤¹¤ë¤Î¤ÇÃí°Õ¡£PARALLEL_FORCE_LOCAL½é´ü²½¥Ñ¥é¥á¡¼¥¿¤òTRUE¤Ë¤¹¤ë¤È¥í¡¼¥«¥ë¤Î¤ß¤ËÀ©¸Â²Äǽ ¸¶¹Æ¥»¥Ã¥·¥ç¥ó¤Îľ¶á¤Î¥Ñ¥é¥ì¥ë¼Â¹Ô¾õ¶·¤Ï¡¢V$PQ_SESSTAT ¤Ç³Îǧ²Äǽ¡£Allocation Width¤¬ÊÂÎóÅÙ¡¢Allocation Height¤¬1¥¤¥ó¥¹¥¿¥ó¥¹Åö¤¿¤ê¤ÎÊÂÎóÅÙ |
Åý·×¾ðÊó †
Åý·×¾ðÊó¤Î¼èÆÀ †
DBMS_STATS.GATHER_TABLE_STATS(
OWNNAME => '¥¹¥¡¼¥Þ'
,TABNAME => '¥Æ¡¼¥Ö¥ë'
,PARTNAME => '¥Ñ¡¼¥Æ¥£¥·¥ç¥ó'
,ESTIMATE_PERCENT => '¥µ¥ó¥×¥ë¥ì¡¼¥È(%)'
,BLOCK_SAMPLE => '¥µ¥ó¥×¥ë¥ì¡¼¥È(block)'
,METHOD_OPT => '¥Ò¥¹¥È¥°¥é¥àÅý·×'
,DEGREE => 'ÊÂÎóÅÙ'
,GRANULARITY => '¥Ñ¡¼¥Æ¥£¥·¥ç¥óɽ¥ª¥×¥·¥ç¥ó'
,CASCADE => '¥¤¥ó¥Ç¥Ã¥¯¥¹Åý·× Í̵'
);
-- ¼Â¹ÔÎã
DBMS_STATS.GATHER_TABLE_STATS(
OWNNAME => 'SCOTT'
,TABNAME => 'COSTS'
,ESTIMATE_PERCENT => 50
,METHOD_OPT => 'FOR COLUMNS PROD_ID SIZE 254' -- ¢¨»ØÄê¤Ç¤¤ëÃͤϸå½Ò
,DEGREE => 2
,CASCADE => TRUE
);
--¥Ç¥£¥¯¥·¥ç¥Ê¥êÅý·×¤Î¼èÆÀ
EXEC DBMS_STATS.GATHER_DICTIONARY_STATS();
--¸ÇÄêɽ¡ÊX$ɽ¡Ë¤ÎÅý·×¼èÆÀ
EXEC DBMS_STATS.GATHER_TABLE_STATS('SYS', 'X$KSWSASTAB', no_invalidate=>false);
Åý·×¾ðÊó¤Î¥ê¥¹¥È¥¢ †
Åý·×¼ý½¸¤ÎÍúÎò¤ò³Îǧ
select * from user_tab_stats_history;
»ØÄꤷ¤¿»þÅÀ¤ÎÅý·×¾ðÊó¤ò¥ê¥¹¥È¥¢¤¹¤ë
exec dbms_stats.restore_table_stats (ownname=>'¥¹¥¡¼¥Þ̾', tabname=>'¥Æ¡¼¥Ö¥ë̾', as_of_timestamp=>'»þ´Ö');
Åý·×¾ðÊó¤ò¥í¥Ã¥¯¡Ê¼ý½¸¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡ËµÚ¤Ó¡¢¥¢¥ó¥í¥Ã¥¯¡Ê¼ý½¸¤µ¤ì¤ë¤è¤¦¤Ë¤¹¤ë¡Ë
exec dbms_stats.lock_table_stat(ownname=>'¥¹¥¡¼¥Þ̾', tabname=>'¥Æ¡¼¥Ö¥ë̾');
exec dbms_stats.unlock_table_stat(ownname=>'¥¹¥¡¼¥Þ̾', tabname=>'¥Æ¡¼¥Ö¥ë̾');
¥¢¥¯¥»¥¹¥Ñ¥¹°ìÍ÷ †
¼Â¹Ô·×²è | ÀâÌÀ |
AND-EQUAL | Ê£¿ô¤ÎROWID¥»¥Ã¥È¤«¤é½ÅÊ£¤ò¤Ê¤¯¤·¤Æ¡¢¤½¤ì¤é¤Î¶¦ÄÌÉôʬ¤òÌ᤹¡£ |
BITMAP CONVERSION TO ROWIDS | ¥Ó¥Ã¥È¥Þ¥Ã¥×¤òROWID ¤ËÊÑ´¹¤¹¤ë¡£ |
BITMAP CONVERSION FROM ROWIDS | ROWID¤ò¥Ó¥Ã¥È¥Þ¥Ã¥×¤ËÊÑ´¹¤¹¤ë¡£ |
BITMAP CONVERSION COUNT | ROWID¤Î¿ô¤òÌ᤹¡£ |
BITMAP INDEX SINGLE VALUE | ¥Ó¥Ã¥È¥Þ¥Ã¥×¥¤¥ó¥Ç¥Ã¥¯¥¹Æâ¤Î£±¤Ä¤Î¥¡¼¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¤ò»²¾È¤¹¤ë¡£ |
BITMAP INDEX RANGE SCAN | ¥Ó¥Ã¥È¥Þ¥Ã¥×¥¤¥ó¥Ç¥Ã¥¯¥¹Æâ¤ÎÆÃÄê¤ÎÈϰϤΥ¡¼¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¤ò»²¾È¤¹¤ë¡£ |
BITMAP INDEX FULL SCAN | ¥Ó¥Ã¥È¥Þ¥Ã¥×¥¤¥ó¥Ç¥Ã¥¯¥¹Æâ¤ÎÁ´¤Æ¤ÎÈϰϤΥ¡¼¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¤ò»²¾È¤¹¤ë¡£ |
BITMAP MERGE | ¥ì¥ó¥¸¥¹¥¥ã¥ó¤Ë¤è¤ëÊ£¿ô¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¤ò£±¤Ä¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¤Ë¥Þ¡¼¥¸¤¹¤ë¡£ |
BITMAP MINUS | °ìÊý¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¤Î¥Ó¥Ã¥È¤ò¡¢¤â¤¦°ìÊý¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¤«¤é°ú¤¯¡£ |
BITMAP OR | £²¤Ä¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¤ÎOR±é»»¤ò¹Ô¤¦¡£ |
BITMAP AND | £²¤Ä¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¤ÎAND±é»»¤ò¹Ô¤¦¡£ |
BITMAP KEY ITERATION | ɽ¤«¤é³Æ¹Ô¤òÃê½Ð¤·¤Æ¥Ó¥Ã¥È¥Þ¥Ã¥×º÷°ú¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¤È¾È¹ç¤·¡¢³ºÅö¤¹¤ë¤â¤Î¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¤ò¤¹¤Ù¤ÆÃê½Ð¤¹¤ë¡£¡Ê¤³¤Î¸åBITMAP MERGEÁàºî¤¬¹Ô¤ï¤ì¤ë¡Ë |
CONNECT BY | CONNECT BY¶ç¤ò´Þ¤ó¤Ç¤¤¤ëÌ䤤¹ç¤ï¤»¤Î¹Ô¤ò¼è¤ê½Ð¤¹¡£ |
CONCATENATION | Ê£¿ô¤Î¹Ô¥»¥Ã¥È¤òUNION-ALL¤·¤ÆÌ᤹¡£ |
COUNT | ÁªÂò¤µ¤ì¤¿¹Ô¤Î¹Ô¿ô¤ò¥«¥¦¥ó¥È¤¹¤ë¡£ |
COUNT STOPKEY | ÁªÂò¤µ¤ì¤¿¹Ô¤òROWNUM¶ç¤ÇÀ©¸Â¤¹¤ë¡£ |
DOMAIN INDEX | ¥É¥á¥¤¥óº÷°ú¤«¤éROWID¤ò¼è¤ê½Ð¤¹¡£ |
FILTER | ¹Ô¥»¥Ã¥È¤«¤éÉÔÍפʤâ¤Î¤ò¼è¤ê½ü¤¤¤ÆÌ᤹¡£ |
FIRST ROW | ¹Ô¥»¥Ã¥È¤ÎºÇ½é¤Î¹Ô¤Î¤ßÌ᤹¡£ |
FOR UPDATE | FOR UPDATE¶ç¤¬´Þ¤Þ¤ì¤Æ¤¤¤ëÌ䤤¹ç¤ï¤»¤Ë¤è¤Ã¤ÆÌᤵ¤ì¤¿¹Ô¤ò¼è¤ê½Ð¤·¤Æ¥í¥Ã¥¯¤¹¤ë¡£ |
HASH GROUP BY | GROUP BY¶ç¤¬´Þ¤Þ¤ì¤Æ¤¤¤ëÌ䤤¹ç¤ï¤»¤Î¹Ô¥»¥Ã¥È¤òÊ£¿ô¤Î¥°¥ë¡¼¥×¤Ë¥Ï¥Ã¥·¥ó¥°¤¹¤ë¡£ |
HASH JOIN | £²¤Ä¤Î¹Ô¥»¥Ã¥È¤ò·ë¹ç¤·¤ÆÌ᤹¡£ |
HASH JOIN ANTI | ¥Ï¥Ã¥·¥å¡Êº¸Â¦¡Ë¥¢¥ó¥Á·ë¹ç |
HASH JOIN RIGHT ANTI | ¥Ï¥Ã¥·¥å¡Ê±¦Â¦¡Ë¥¢¥ó¥Á·ë¹ç |
HASH JOIN SEMI | ¥Ï¥Ã¥·¥å¡Êº¸Â¦¡Ë¥»¥ß·ë¹ç |
HASH JOIN RIGHT SEMI | ¥Ï¥Ã¥·¥å¡Ê±¦Â¦¡Ë¥»¥ß·ë¹ç |
HASH JOIN OUTER | ¥Ï¥Ã¥·¥å¡Êº¸Â¦¡Ë³°Éô·ë¹ç |
HASH JOIN RIGHT OUTER | ¥Ï¥Ã¥·¥å¡Ê±¦Â¦¡Ë³°Éô·ë¹ç |
INDEX UNIQUE SCAN | º÷°ú¤«¤éñ°ìROWID¤ò¼è¤ê½Ð¤¹¡£ |
INDEX RANGE SCAN | º÷°ú¤«¤éÆÃÄê¤ÎÈϰϤÎROWID¤ò¼è¤ê½Ð¤¹¡£¡Ê¾º½ç¡Ë |
INDEX RANGE SCAN DESCENDING | º÷°ú¤«¤éÆÃÄê¤ÎÈϰϤÎROWID¤ò¼è¤ê½Ð¤¹¡£¡Ê¹ß½ç¡Ë |
INDEX FULL SCAN | º÷°ú¤«¤é¤¹¤Ù¤Æ¤ÎROWID¤ò¼èÆÀ¤¹¤ë¡£¡Ê¾º½ç¡Ë |
INDEX FULL SCAN DESCENDING | º÷°ú¤«¤é¤¹¤Ù¤Æ¤ÎROWID¤ò¼èÆÀ¤¹¤ë¡£¡Ê¹ß½ç¡Ë |
INDEX FAST FULL SCAN | ¥Þ¥ë¥Á¥Ö¥í¥Ã¥¯Æɤ߹þ¤ß¤ò»ÈÍѤ·¤Æ¡¢º÷°ú¤Î¤¹¤Ù¤Æ¤ÎROWID¤ò¼èÆÀ¤¹¤ë¡£ |
INDEX SKIP SCAN | Ï¢·ëº÷°ú¤ÎÀèƬÎó¤ò»ÈÍѤ»¤º¤Ëº÷°ú¤«¤éROWID¤ò¼èÆÀ¤¹¤ë¡£ |
INLIST ITERATOR | IN¥ê¥¹¥ÈÆâ¤Î³ÆÃͤËÂФ·¤Æ¡¢¼Â¹Ô·×²èÆâ¤ÎÁàºî¤ò·«¤êÊÖ¤¹¡£ |
INTERSECTION | £²¤Ä¤Î¹Ô¥»¥Ã¥È¤«¤é½ÅÊ£¤ò¤Ê¤¯¤·¤Æ¡¢¤½¤ì¤é¤Î¶¦ÄÌÉôʬ¤òÌ᤹¡£ |
MERGE JOIN | £²¤Ä¤Î¹Ô¥»¥Ã¥È¤ò¤½¤ì¤¾¤ìÆÃÄê¤ÎÃͤǥ½¡¼¥È¤·¡¢°ìÊý¤Î¹Ô¥»¥Ã¥È¤ò¤â¤¦°ìÊý¤Î¹Ô¥»¥Ã¥È¤Î¹Ô¤È¤Ä¤¹ç¤ï¤»¤Æ·ë²Ì¤òÌ᤹¡£ |
MERGE JOIN OUTER | ³°Éô·ë¹ç¤ò¼Â¹Ô¤¹¤ë¥Þ¡¼¥¸·ë¹ç |
MERGE JOIN ANTI | ¥Þ¡¼¥¸¥¢¥ó¥Á·ë¹ç |
MERGE JOIN SEMI | ¥Þ¡¼¥¸¥»¥ß·ë¹ç |
MERGE JOIN CARTESIAN | ¾¤Îɽ¤Ø¤Î·ë¹ç¾ò·ï¤ò»ý¤¿¤Ê¤¤¥Þ¡¼¥¸·ë¹ç¡Ê¥¯¥í¥¹·ë¹ç¡Ë |
MAT_VIEW REWRITE ACCESS FULL | ¥Þ¥Æ¥ê¥¢¥é¥¤¥º¥É¥Ó¥å¡¼¤ÎÁ´¤Æ¤Î¹Ô¤Î¼è¤ê½Ð¤· |
MAT_VIEW REWRITE ACCESS SAMPLE | ¥Þ¥Æ¥ê¥¢¥é¥¤¥º¥É¥Ó¥å¡¼¤Î¥µ¥ó¥×¥ë¹Ô¤Î¼è¤ê½Ð¤· |
MAT_VIEW REWRITE ACCESS CLUSTER | º÷°ú¥¯¥é¥¹¥¿¤Î¥¡¼Ãͤˤè¤ë¡¢¥Þ¥Æ¥ê¥¢¥é¥¤¥º¥É¥Ó¥å¡¼¤«¤é¤Î¹Ô¤Î¼è¤ê½Ð¤· |
MAT_VIEW REWRITE ACCESS HASH | ¥Ï¥Ã¥·¥å¥¯¥é¥¹¥¿¤Î¥¡¼Ãͤˤè¤ë¡¢¥Þ¥Æ¥ê¥¢¥é¥¤¥º¥É¥Ó¥å¡¼¤«¤é¤Î¹Ô¤Î¼è¤ê½Ð¤· |
MAT_VIEW REWRITE ACCESS BY ROWID RANGE | ROWID¤ÎÈϰϤˤè¤ë¡¢¥Þ¥Æ¥ê¥¢¥é¥¤¥º¥É¥Ó¥å¡¼¤«¤é¤Î¹Ô¤Î¼è¤ê½Ð¤· |
MAT_VIEW REWRITE ACCESS SAMPLE BY ROWID RANGE | ROWID¤ÎÈϰϤˤè¤ë¡¢¥Þ¥Æ¥ê¥¢¥é¥¤¥º¥É¥Ó¥å¡¼¤«¤é¤Î¥µ¥ó¥×¥ë¹Ô¤Î¼è¤ê½Ð¤· |
MAT_VIEW REWRITE ACCESS BY USER ROWID | »ØÄêROWID¤Ë¤è¤ë¡¢¥Þ¥Æ¥ê¥¢¥é¥¤¥º¥É¥Ó¥å¡¼¤«¤é¤Î¹Ô¤Î¼è¤ê½Ð¤· |
MAT_VIEW REWRITE ACCESS BY INDEX ROWID | º÷°úROWID¤Ë¤è¤ë¡¢¥Þ¥Æ¥ê¥¢¥é¥¤¥º¥É¥Ó¥å¡¼¤«¤é¤Î¹Ô¤Î¼è¤ê½Ð¤·¡ÊÈó¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡Ë |
MAT_VIEW REWRITE ACCESS BY GLOBAL INDEX ROWID | ¥°¥í¡¼¥Ð¥ëº÷°úROWID¤Î¤ß¤Ë¤è¤ë¡¢¥Þ¥Æ¥ê¥¢¥é¥¤¥º¥É¥Ó¥å¡¼¤«¤é¤Î¹Ô¤Î¼è¤ê½Ð¤·¡Ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡Ë |
MAT_VIEW REWRITE ACCESS BY LOCAL INDEX ROWID | £±¤Ä°Ê¾å¤Î¥í¡¼¥«¥ëº÷°úROWID¤È¥°¥í¡¼¥Ð¥ëº÷°úROWID¤Ë¤è¤ë¡¢¥Þ¥Æ¥ê¥¢¥é¥¤¥º¥É¥Ó¥å¡¼¤«¤é¤Î¹Ô¤Î¼è¤ê½Ð¤·¡Ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡Ë |
MINUS | °ìÊý¤Î¹Ô¥»¥Ã¥È¤Ë¤¢¤Ã¤Æ¡¢¤â¤¦°ìÊý¤Î¹Ô¥»¥Ã¥È¤Ë¤Ê¤¤¤â¤Î¤ò¤â¤É¤¹¡£ |
NESTED LOOPS | ³°Â¦É½¤Î³Æ¹Ô¤òÆâ¦ɽ¤Î³Æ¹Ô¤ÈÈæ³Ó¤·¤Æ¤â¤É¤¹¡£ |
NESTED LOOPS OUTER | ³°Éô·ë¹ç¤ò¼Â¹Ô¤¹¤ë¥Í¥¹¥Æ¥Ã¥É¥ë¡¼¥×·ë¹ç |
PARTITION | PARTITION_START¡ÁPARTITION_STOP¤ÎÈϰϤγƥѡ¼¥Æ¥£¥·¥ç¥ó¤ËÂФ·¤Æ¡¢¼Â¹Ô·×²èÆâ¤ÎÁàºî¤ò·«¤êÊÖ¤¹¡£ |
PARTITION SINGLE | £±¤Ä¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ø¤ÎÌ䤤¹ç¤ï¤» |
PARTITION ITERATROR | Ê£¿ô¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ø¤ÎÌ䤤¹ç¤ï¤» |
PARTITION ALL | Á´¤Æ¤Î¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ø¤ÎÌ䤤¹ç¤ï¤» |
PARTITION INLIST | IN¥ê¥¹¥È¤ò´ð½à¤Ë¤·¤¿·«¤êÊÖ¤·½èÍý |
PARTITION INVALID | Áàºî¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¶õ¤Ç¤¢¤ë¾õÂÖ |
PX ITERATOR BLOCK( OR CHUNK) | ¥Ñ¥é¥ì¥ë¥¹¥¥ã¥ó¡¦¥¹¥ì¡¼¥Ö´Ö¤Ç¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Ö¥í¥Ã¥¯¤Þ¤¿¤Ï¥Á¥ã¥ó¥¯Ã±°Ì¤Ç¤Îʬ³ä |
PX COORDINATOR | ¥Ñ¥é¥ì¥ë¥¯¥¨¥ê¡¦¥³¡¼¥Ç¥£¥Í¡¼¥¿¡¼¤ò»ÈÍѤ¹¤ë |
PX PARTITION | PARTITION¤ÈƱµÁ¤À¤¬¡¢¥Ñ¥é¥ì¥ë¼Â¹Ô·×²è¤Ëɽ¼¨¤µ¤ì¤ë |
PX RECEIVE | PX SEND¥Î¡¼¥É¤«¤éÁ÷¿®¤µ¤ì¤ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó²½¥Ç¡¼¥¿¤òÆɤ߼è¤ë |
PX SEND QC(RANDOM) (OR HASH) (OR RANGE) | ¥¹¥ì¡¼¥Ö¤Î£²¤Ä¤Î¥»¥Ã¥È´Ö¤Ë¤ª¤±¤ëÇÛʬÊýË¡¤ò¼ÂÁõ¤¹¤ë |
REMOTE | ¥ê¥â¡¼¥È¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¤Î¥Ç¡¼¥¿¤Î¼è¤ê½Ð¤· |
SEQUENCE | ¥·¡¼¥±¥ó¥¹¤Ø¤ÎÁàºî¤òȼ¤¦½èÍý |
SORT AGGREGATE | ¥°¥ë¡¼¥×´Ø¿ô¤òÍѤ¤¤¿·ë²Ì¤Ë¤ª¤±¤ëñ°ì¹Ô¤Î¼è¤ê½Ð¤· |
SORT UNIQUE | ¹Ô¥»¥Ã¥È¤ò¥½¡¼¥È¤·¤Æ½ÅÊ£¤ò¼è¤ê½ü¤¯ |
SORT GROUP BY | GROUP BY¶çÌ䤤¹ç¤ï¤»¤Ë¤è¤Ã¤ÆÊ£¿ô¥°¥ë¡¼¥×¤Ë¥½¡¼¥È¤¹¤ë½èÍý |
SORT JOIN | ¥Þ¡¼¥¸·ë¹çÁ°¤Î¥½¡¼¥È½èÍý |
SORT ORDER BY | ORDER BY¶çÌ䤤¹ç¤ï¤»¤Ë¤è¤ë¥½¡¼¥È½èÍý |
TABLE ACCESS FULL | ɽ¤ÎÁ´¹Ô¤Î¼è¤ê½Ð¤· |
TABLE ACCESS SAMPLE | ɽ¤Î¥µ¥ó¥×¥ë¹Ô¤Î¼è¤ê½Ð¤· |
TABLE ACCESS CLUSTER | ɽ¤Îº÷°ú¥¯¥é¥¹¥¿¥¡¼Ãͤˤè¤ë¹Ô¤Î¼è¤ê½Ð¤· |
TABLE ACCESS HASH | ɽ¤Î¥Ï¥Ã¥·¥å¥¯¥é¥¹¥¿¥¡¼Ãͤˤè¤ë¹Ô¤Î¼è¤ê½Ð¤· |
TABLE ACCESS BY ROWID RANGE | ɽ¤ÎÆÃÄê¤ÎROWIDÈϰϤˤè¤ë¹Ô¤Î¼è¤ê½Ð¤· |
TABLE ACCESS BY USER ROWID | »ØÄꤷ¤¿ROWID¤Ë¤è¤ë¹Ô¤Î¼è¤ê½Ð¤· |
TABLE ACCESS BY INDEX ROWID | º÷°úROWID¤Ë¤è¤ë¹Ô¤Î¼è¤ê½Ð¤·¡ÊÈó¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡Ë |
TABLE ACCESS BY GLOBAL INDEX ROWID | ¥°¥í¡¼¥Ð¥ëº÷°úROWID¤Î¤ß¤Ë¤è¤ë¡¢¹Ô¤Î¼è¤ê½Ð¤·¡Ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡Ë |
TABLE ACCESS BY LOCAL INDEX ROWID | £±¤Ä°Ê¾å¤Î¥í¡¼¥«¥ëº÷°úROWID¤È¥°¥í¡¼¥Ð¥ëº÷°úROWID¤Ë¤è¤ë¡¢¹Ô¤Î¼è¤ê½Ð¤·¡Ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡Ë |
UNION | £²¤Ä¤Î¹Ô¥»¥Ã¥È¤«¤é½ÅÊ£¤ò¤Ê¤¯¤·¤ÆÏ¢·ë·ë²Ì¤òÌ᤹ |
VIEW | ¥Ó¥å¡¼¤Ø¤ÎÌ䤤¹ç¤ï¤»·ë²Ì¤òÊ̤νèÍý¤ËÌ᤹ |