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

²é¿´OracleÖ´Ðмƻ®µÄ¼¸ÖÖ·½·¨

²é¿´OracleÖ´Ðмƻ®µÄ¼¸ÖÖ·½·¨
Ò»¡¢Í¨¹ýPL/SQL Dev¹¤¾ß
    1¡¢Ö±½ÓFile->New->Explain Plan Window£¬ÔÚ´°¿ÚÖÐÖ´ÐÐsql¿ÉÒԲ鿴¼Æ»®½á¹û¡£ÆäÖУ¬Cost±íʾcpuµÄÏûºÄ£¬µ¥Î»Îªn%£¬Cardinality±íʾִÐеÄÐÐÊý£¬µÈ¼ÛRows¡£
    2¡¢ÏÈÖ´ÐÐ EXPLAIN PLAN FOR   select * from tableA where paraA=1£¬ÔÙ select * from table(DBMS_XPLAN.DISPLAY)±ã¿ÉÒÔ¿´µ½oracleµÄÖ´Ðмƻ®ÁË£¬¿´µ½µÄ½á¹ûºÍ1ÖеÄÒ»Ñù£¬ËùÒÔʹÓù¤¾ßµÄʱºòÍÆ¼öʹÓÃ1·½·¨¡£
×¢Ò⣺PL/SQL Dev¹¤¾ßµÄCommand windowÖв»Ö§³Öset autotrance onµÄÃüÁî¡£»¹ÓÐʹÓù¤¾ß·½·¨²é¿´¼Æ»®¿´µ½µÄÐÅÏ¢²»È«£¬ÓÐЩʱºòÎÒÃÇÐèÒªsqlplusµÄÖ§³Ö¡£
 
¶þ¡¢Í¨¹ýsqlplus
1£®×î¼òµ¥µÄ°ì·¨
Sql> set autotrace on
Sql> select * from dual;
¡¡¡¡Ö´ÐÐÍêÓï¾äºó£¬»áÏÔʾexplain plan Óë ͳ¼ÆÐÅÏ¢¡£
¡¡¡¡Õâ¸öÓï¾äµÄÓŵã¾ÍÊÇËüµÄȱµã£¬ÕâÑùÔÚÓø÷½·¨²é¿´Ö´ÐÐʱ¼ä½Ï³¤µÄsqlÓï¾äʱ£¬ÐèÒªµÈ´ý¸ÃÓï¾äÖ´Ðгɹ¦ºó£¬²Å·µ»ØÖ´Ðмƻ®£¬Ê¹ÓÅ»¯µÄÖÜÆÚ´ó´óÔö³¤¡£Èç¹û²»ÏëÖ´ÐÐÓï¾ä¶øÖ»ÊÇÏëµÃµ½Ö´Ðмƻ®¿ÉÒÔ²ÉÓãº
Sql> set autotrace traceonly
ÕâÑù£¬¾ÍÖ»»áÁгöÖ´Ðмƻ®£¬¶ø²»»áÕæÕýµÄÖ´ÐÐÓï¾ä£¬´ó´ó¼õÉÙÁËÓÅ»¯Ê±¼ä¡£ËäȻҲÁгöÁËͳ¼ÆÐÅÏ¢£¬µ«ÊÇÒòΪûÓÐÖ´ÐÐÓï¾ä£¬ËùÒÔ¸Ãͳ¼ÆÐÅϢûÓÐÓô¦£¬Èç¹ûÖ´ÐиÃÓï¾äʱÓöµ½´íÎ󣬽â¾ö·½·¨Îª£º
(1£©ÔÚÒª·ÖÎöµÄÓû§Ï£º
Sqlplus > @ ?
dbmsadminutlxplan.sql
(2) ÓÃsysÓû§µÇ½
Sqlplus > @ ?sqlplusadminplustrce.sql
Sqlplus > grant plustrace to user_name;
- - user_nameÊÇÉÏÃæËù˵µÄ·ÖÎöÓû§
 
¡¡2£®ÓÃexplain planÃüÁî
(1) sqlplus > explain plan for select * from testdb.myuser
(2) sqlplus > select * from table(dbms_xplan.display);
¡¡¡¡ÉÏÃæÕâ2ÖÖ·½·¨Ö»ÄÜΪÔÚ±¾»á»°ÖÐÕýÔÚÔËÐеÄÓï¾ä²úÉúÖ´Ðмƻ®£¬¼´ÎÒÃÇÐèÒªÒѾ­ÖªµÀÁËÄÄÌõÓï¾äÔËÐеÄЧÂʺܲÎÒÃÇÊÇÓÐÄ¿µÄÖ»¶ÔÕâÌõSQLÓï¾äÈ¥ÓÅ»¯¡£Æäʵ£¬ÔںܶàÇé¿öÏ£¬ÎÒÃÇÖ»»áÌýÒ»¸ö¿Í»§±§Ô¹ËµÏÖÔÚϵͳÔËÐкÜÂý£¬¶øÎÒÃDz»ÖªµÀÊÇÄĸöSQLÒýÆðµÄ¡£´ËʱÓÐÐí¶àÏֳɵÄÓï¾ä¿ÉÒÔÕÒ³öºÄ·Ñ×ÊÔ´±È½Ï¶àµÄÓï¾ä£¬È磺
SELECT ADDRESS, substr(SQL_TEXT,1,20) Text, buffer_gets, executions,
buffer_gets/executions AVG  from  v$sqlarea
WHERE executions>0 AND buffer_gets > 100000   ORDER BY 5;
ADDRESS  &n


Ïà¹ØÎĵµ£º

oracleÈÕÆÚº¯Êý¼¯½õ


Ò»¡¢ ³£ÓÃÈÕÆÚÊý¾Ý¸ñʽ
1.Y»òYY»òYYY ÄêµÄ×îºóһ룬Á½Î»»òÈýλ
SQL> Select to_char(sysdate,'Y') from dual;
TO_CHAR(SYSDATE,'Y')
--------------------
7
SQL> Select to_char(sysdate,'YY') from dual;
TO_CHAR(SYSDATE,'YY')
---------------------
07
SQL> Select to_char(sysdate,'YYY') from ......

Oracle¸´ÔÓ²éѯ

1¡¢²éѯÁ½¸öÈÕÆÚÖ®¼äµÄÊý¾Ý¡£
¼ÙÉèÓбíTable1£¬Æä´´½¨±íµÄsqlÓï¾äΪ£º
create table Table1(
StationID    NUMBER(10) Primary key,
Year           NUMBER(4)  not null,
Month        NUMBER(2)  n ......

ORACLE ×óÓÒÁ´½Ó

Êý¾Ý±íµÄÁ¬½ÓÓÐ:
1¡¢ÄÚÁ¬½Ó(×ÔÈ»Á¬½Ó): Ö»ÓÐÁ½¸ö±íÏàÆ¥ÅäµÄÐвÅÄÜÔÚ½á¹û¼¯ÖгöÏÖ
2¡¢ÍâÁ¬½Ó: °üÀ¨
     £¨1£©×óÍâÁ¬½Ó(×ó±ßµÄ±í²»¼ÓÏÞÖÆ)
     £¨2£©ÓÒÍâÁ¬½Ó(ÓÒ±ßµÄ±í²»¼ÓÏÞÖÆ)
     £¨3£©È«ÍâÁ¬½Ó(×óÓÒÁ½±í¶¼²»¼ÓÏÞÖÆ)
3¡¢×ÔÁ¬½Ó(Á¬½Ó·¢ÉúÔÚÒ»Õ ......

Oracle wait problems and potential solutions

Wait Problem Potential Fix Sequential Read Indicates many index reads—tune the code (especially joins) Scattered Read Indicates many full table scans—tune the code; cache small tables ......

oracleÁ¬½ÓÊý¾Ý¿â²âÊÔ´úÂë

oracleÁ¬½ÓÊý¾Ý¿â²âÊÔ´úÂë
/**
*
* ˵Ã÷£º
* £¨1£©±¾ÀýʹÓÃJDBC_ODBCÇŽøÐÐÊý¾Ý¿âÁ¬½Ó£¬¹Ê´ËÐèÒªODBCÊý¾ÝÔ´
* £¨2£©±¾ÀýÖÐSQLΪ¸üÐÂÓï¾ä£¬¹Ê´ËʹÓÃÔØÌåµÄexecuteUpdate·½·¨£¬²¢ÇÒ·µ»ØÊÜÓ°Ïì¼Ç¼Êý
* (3) ÅäÖÃÁ¬½ÓORACLEµÄodbcÊý¾ÝÔ´ora
*/ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ