Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

¡¾×ª¡¿ ÓÃEXPLAIN PLAN ·ÖÎöSQLÓï¾ä

ÓÃEXPLAIN PLAN ·ÖÎöSQLÓï¾ä
http://blog.csdn.net/kj021320/archive/2006/08/19/1096021.aspx
ÈçºÎÉú³Éexplain plan?
¡¡¡¡½â´ð:ÔËÐÐutlxplan.sql. ½¨Á¢plan ±í
¡¡¡¡Õë¶ÔÌØ¶¨SQLÓï¾ä£¬Ê¹Óà explain plan set statement_id = 'tst1' into plan_table
¡¡¡¡ÔËÐÐutlxplp.sql »ò utlxpls.sql²ì¿´explain plan
EXPLAIN PLAN ÊÇÒ»¸öºÜºÃµÄ·ÖÎöSQLÓï¾äµÄ¹¤¾ß,ËüÉõÖÁ¿ÉÒÔÔÚ²»Ö´ÐÐSQLµÄÇé¿öÏ·ÖÎöÓï¾ä. ͨ¹ý·ÖÎö,ÎÒÃǾͿÉÒÔÖªµÀORACLEÊÇÔõôÑùÁ¬½Ó±í,ʹÓÃʲô·½Ê½É¨Ãè±í(Ë÷ÒýɨÃè»òÈ«±íɨÃè)ÒÔ¼°Ê¹Óõ½µÄË÷ÒýÃû³Æ.
ÄãÐèÒª°´ÕÕ´ÓÀïµ½Íâ,´ÓÉϵ½ÏµĴÎÐò½â¶Á·ÖÎöµÄ½á¹û. EXPLAIN PLAN·ÖÎöµÄ½á¹ûÊÇÓÃËõ½øµÄ¸ñʽÅÅÁеÄ, ×îÄÚ²¿µÄ²Ù×÷½«±»×îÏȽâ¶Á, Èç¹ûÁ½¸ö²Ù×÷´¦ÓÚͬһ²ãÖÐ,´øÓÐ×îС²Ù×÷ºÅµÄ½«±»Ê×ÏÈÖ´ÐÐ.
NESTED LOOPÊÇÉÙÊý²»°´ÕÕÉÏÊö¹æÔò´¦ÀíµÄ²Ù×÷, ÕýÈ·µÄÖ´Ðз¾¶ÊǼì²é¶ÔNESTED LOOPÌṩÊý¾ÝµÄ²Ù×÷,ÆäÖвÙ×÷ºÅ×îСµÄ½«±»×îÏÈ´¦Àí.
ÒëÕß°´:
ͨ¹ýʵ¼ù, ¸Ðµ½»¹ÊÇÓÃSQLPLUSÖеÄSET TRACE ¹¦ÄܱȽϷ½±ã.
¾ÙÀý:
SQL> list
1 SELECT *
2 from dept, emp
3* WHERE emp.deptno = dept.deptno
SQL> set autotrace traceonly /*traceonly ¿ÉÒÔ²»ÏÔʾִÐнá¹û*/
SQL> /
14 rows selected.
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)
Statistics
----------------------------------------------------------
0 recursive calls
2 db block gets
30 consistent gets
0 physical reads
0 redo size
2598 bytes sent via SQL*Net to client
503 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
14 rows processed
ͨ¹ýÒÔÉÏ·ÖÎö,¿ÉÒԵóöʵ¼ÊµÄÖ´Ðв½ÖèÊÇ:
1. TABLE ACCESS (FULL) OF 'EMP'
2. INDEX (UNIQUE SCAN) OF 'PK_DEPT' (UNIQUE)
3. TABLE ACCESS (BY INDEX ROWID) OF 'DEPT'
4. NESTED LOOPS (JOINING 1 AND 3)
×¢: ĿǰÐí¶àµÚÈý·½µÄ¹¤¾ßÈçTOADºÍORACLE±¾ÉíÌṩµÄ¹¤¾ßÈçOMSµÄSQL Analyze¶¼ÌṩÁ˼«Æä·½±ãµÄEXPLAIN PLAN¹¤¾ß.Ò²Ðíϲ»¶Í¼Ðλ¯½çÃæµÄÅóÓÑÃÇ¿ÉÒÔÑ¡ÓÃËüÃÇ.
--------


Ïà¹ØÎĵµ£º

SQL ServerÊý¾Ý²Ö¿âÏà¹Ø¸ÅÄî ά¶È±íºÍÊÂʵ±í¸ÅÊö

SQL ServerÊý¾Ý²Ö¿âÏà¹Ø¸ÅÄî-ά¶È±íºÍÊÂʵ±í¸ÅÊö ÊÕ²Ø
¿ªÊ¼Ñо¿BI£¬³õѧ¡£»á¼Ç¼һЩ¸ÅÄîÐÔµÄÎÄÕ¡£
»ù±¾¸ÅÄ
1.¶àάÊý¾Ý¼¯£º¶àάÊý¾Ý¼¯ÊÇÁª»ú·ÖÎö´¦Àí (OLAP) ÖеÄÖ÷Òª¶ÔÏó£¬ÊÇÒ»Ïî¿É¶ÔÊý¾Ý²Ö¿âÖеÄÊý¾Ý½øÐпìËÙ·ÃÎʵļ¼Êõ¡£¶àάÊý¾Ý¼¯ÊÇÒ»¸öÊý¾Ý¼¯ºÏ£¬Í¨³£´ÓÊý¾Ý²Ö¿âµÄ×Ó¼¯¹¹Ô죬²¢×éÖ¯ºÍ»ã×ܳÉÒ»¸öÓÉÒ»×éά¶ÈºÍ¶ÈÁ ......

SQL_²éѯµ±Ìì¡¢½ü¼¸Ìì¡¢±¾ÖÜ¡¢±¾ÔµÄSQLÓï¾ä

¾­³£»áÓÐʱºòÒªÓõ½²éѯµ±Ì죬½ü¼¸Ì죬±¾ÖÜ£¬±¾ÔµÄÏà¹ØÊý¾Ý£¬ËùÒԼǼһÏÂÕâЩ±È½ÏÌØÊâµÄSQLÓï¾ä~~
--µ±Ìì
(usrRegTime >=CONVERT(varchar(10),getDate(),120)+' 00:00:00' and usrRegTime <=CONVERT(varchar (10),getDate(),120)+' 23:59:59')
--½üÈýÌì
DateDiff(day,usrRegTime,getdate()) <=3
--±¾ÖÜ ......

Ò»¸öSQLÎÞÏÞ¼¶Ê÷ÐÍ´æ´¢¹ý³ÌʵÏÖÊ÷ÐͽṹÊý¾ÝÅÅÐò

ÎÒÃÇÔÚÆ½³£µÄϵͳ¿ª·¢Öг£³£»áÓöµ½ÏñÎÞÏÞ¼¶·ÖÀàÕâÑùµÄÊ÷ÐͽṹÊý¾Ý£¬ÏÖÌṩһ¸ö¿ÉÓõÄÊý¾Ý¿â´æ´¢¹ý³Ì£¬¿ÉÒÔÍê³ÉÊ÷ÐͽṹÊý¾ÝµÄÅÅÐò¡£
»·¾³£ºwindows7+Sql Server 2008
˵Ã÷£ºÏÂÃæ´úÂëÒѾ­×ª»»³ÉSql server2000µÄ½Å±¾£¬´¦ÀíЧ¹ûÈçÏ£¬¿´sortname×ֶνá¹û,´úÂë¾­¹ý²âÊÔ¡£
´´½¨Ê÷Ðͱí
CREATE TABLE [dbo].[categories](
......

ÔÚsql*plusÏÂÉèÖÃautotrace

    ÎÒÃÇÔÚ¹¤×÷ÖÐÏ£ÍûÄÜ¿´¼û×Ô¼ºÔËÐеÄDMLÓï¾äµÄÔËÐб¨¸æ£¬ÀýÈçselect,delete,update,megreºÍinsertÓï¾äÔËÐкóµÄÇé¿ö£¬ÒÔÓÃÀ´¼àÊӺ͵÷ÓÅÓï¾ä¡£ÎÒÃÇͨ³£ÔÚsql*plusÖÐʹÓÃset autotrace on¿ªÆô¡£
    ÄÇautotraceÊÇÈçºÎ°²×°µÄÄØ£¿thomas kyteµÄ´ó×÷Öиø³öÁËÏêϸµÄ·½·¨ºÍ½âÊÍ£º
  & ......

oracle sqlÃæÊÔÌâ2

Ò»£®¼òµ¥SQL²éѯ£º
1£©:ͳ¼ÆÃ¿¸ö²¿ÃÅÔ±¹¤µÄÊýÄ¿
select dept,count(*) from employee group by dept;
2£©:ͳ¼ÆÃ¿¸ö²¿ÃÅÔ±¹¤µÄÊýÄ¿´óÓÚÒ»¸öµÄ¼Ç¼
select dept,count(*) from employee group by dept having count(*)>1;
3£©:ͳ¼Æ¹¤×ʳ¬¹ý1200µÄÔ±¹¤ËùÔÚ²¿ÃŵÄÃû³Æ
select e.first_name,salary,d.name
from s_emp ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ