ORACLE EXPLAIN PLANµÄ×ܽá
ÔÚORACLEÊý¾Ý¿âÖÐ,ÐèÒª¶ÔSQLÓï¾ä½øÐÐÓÅ»¯µÄ»°ÐèÒªÖªµÀÆäÖ´Ðмƻ®,´Ó¶øÕë¶ÔÐԵĽøÐе÷Õû.ORACLEµÄÖ´Ðмƻ®µÄ»ñµÃÓм¸ÖÖ·½·¨,ÏÂÃæ¾ÍÀ´×ܽáÏÂ
1¡¢EXPLAINµÄʹÓÃ
Oracle RDBMSÖ´ÐÐÿһÌõSQLÓï¾ä£¬¶¼±ØÐë¾¹ýOracleÓÅ»¯Æ÷µÄÆÀ¹À¡£ËùÒÔ£¬Á˽âÓÅ»¯Æ÷ÊÇÈçºÎÑ¡Ôñ(ËÑË÷)·¾¶ÒÔ¼°Ë÷ÒýÊÇÈçºÎ±»Ê¹Óõ쬶ÔÓÅ»¯SQLÓï¾äÓкܴóµÄ°ïÖú¡£Explain¿ÉÒÔÓÃÀ´Ñ¸ËÙ·½±ãµØ²é³ö¶ÔÓÚ¸ø¶¨SQLÓï¾äÖеIJéѯÊý¾ÝÊÇÈçºÎµÃµ½µÄ¼´ËÑË÷·¾¶(ÎÒÃÇͨ³£³ÆÎªAccess Path)¡£´Ó¶øÊ¹ÎÒÃÇÑ¡Ôñ×îÓŵIJéѯ·½Ê½´ïµ½×î´óµÄÓÅ»¯Ð§¹û¡£
1.1 ¡¢°² ×°
ҪʹÓÃEXPLAINÊ×ÏÈÒªÖ´ÐÐÏàÓ¦µÄ½Å±¾£¬´´½¨³öExplain_plan±í¡£
¾ßÌå½Å±¾Ö´ÐÐÈçÏ£º
$ORACLE_HOME/rdbms/admin/utlxplan.sql (UNIX) ¸Ã½Å±¾ºó»áÉú³ÉÒ»¸ö±íÕâ¸ö³ÌÐò»á´´½¨Ò»¸öÃûΪplan_tableµÄ±í¡£
1.2 ¡¢Ê¹ÓÃ
³£¹æÊ¹ÓÃÓï·¨£º
explain PLAN [ SET STATEMENT_ID [=] < string literal > ] [ INTO < table_name > ]
FOR < sql_statement >
ÆäÖУº
STATEMENT_ID£ºÊÇÒ»¸öΨһµÄ×Ö·û´®£¬°Ñµ±Ç°Ö´Ðмƻ®Óë´æ´¢ÔÚͬһPLANÖÐµÄÆäËüÖ´Ðмƻ®Çø±ð¿ªÀ´¡£
TABLE_NAME£ºÊÇplan±íÃû£¬Ëü½á¹¹ÈçǰËùʾ£¬Äã¿ÉÒÔÈÎÒâÉ趨Õâ¸öÃû³Æ¡£
SQL_STATEMENT£ºÊÇÕæÕýµÄSQLÓï¾ä¡£
Ïà¹ØÎĵµ£º
ÏÈ¿´ÏÂÃæµÄÀý×Ó:oracleÖÐÁ½¸öϵͳ±í.emp,dept.
example:
1:not exists(not in)
not exists:
ÕâÌõÓï¾ä·µ»Øselect * from scott.dept d where e.deptno=d.deptno and d.deptno=10Ìõ¼þÂú×ãµÄ½á¹û¼¯.Ò²¾ÍÊÇ˵,
·µ»ØµÄ½á¹û¼¯Öв»´æÔÚd.deptno=10½á¹û¼¯µÄ¼Ç¼,¼´emp±íÖÐûÓÐdept±íÖÐd.deptno=10µÄ¼Ç¼.
SQL& ......
Êý¾Ý¿âµÄÄÚ´æ½á¹¹£º
Memory structures are allocated to the Oracle instance when the instance is started.
The two major memory structures are known as the System Global Area(Also called the shared
Global Area)and the Program Global Area(also called the Private Global Area or the ......
Óû§ºÅÂë µÇ½ʱ¼ä
1300000000 2010-01-01
1300000001 2010-01-01
1300000002 2010-01-02
1300000001 2010-01-02
1300000003 2010-01-03
1300000002 2010-01-03
1300000004 2010-01-04
1300000003 2010-01-04
1300000004 2010-01-02
1300000006 2011-01-04
1300000001 2011-01-04
ÌÞ³ýÖØ¸´µ ......