Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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°´×Ö·û½ØÈ¡×Ö·û´®º¯Êý

ÊäÈë²ÎÊý£ºstr ——Òª½ØÈ¡µÄ×Ö·û´®,  ch——Òª²éÕÒµÄ×Ö·û´®
½ØÈ¡ch֮ǰ£¨²»°üÀ¨ch£©µÄ×Ö·û´®£º substr(str, 0, instr(str, ch) - 1)
½ØÈ¡chÖ®ºó£¨²»°üÀ¨ch£©µÄ×Ö·û´®£º substr(str, , instr(str, ch) + 1, length(str)) ......

OracleµÄÓÅ»¯Æ÷ÓÐÁ½ÖÖÓÅ»¯·½Ê½(¶þ)

15. /*+USE_CONCAT*/
¶Ô²éѯÖеÄWHEREºóÃæµÄORÌõ¼þ½øÐÐת»»ÎªUNION  ALLµÄ×éºÏ²éѯ. (ã¶®°¡,ÏÈ´æ×Å)
ÀýÈç:
select /*+use_concat */ * from emp where deptno=10 OR empno=7788;
Execution Plan
----------------------------------------------------------
   0      S ......

ÓÅ»¯select count(*) (תoracleÅàѵÀÏʦµÄÎÄÕÂ)


select count(*) from t1;
Õâ¾ä»°±È½Ï¼òµ¥£¬µ«ºÜÓÐÐþ»ú£¡¶ÔÕâ¾ä»°ÔËÐеÄÀí½â£¬·´Ó³ÁËÄã¶ÔÊý¾Ý¿âµÄÀí½âÉî¶È£¡
½¨Á¢ÊµÑéµÄ´ó±íËût1
SQL> conn scott/tiger
ÒÑÁ¬½Ó¡£
SQL> drop table t1 purge;
±íÒÑɾ³ý¡£
SQL> create table t1 as select * from emp where 0=9;
±íÒÑ´´½¨¡£
SQL> insert into t1 sele ......

OracleºÍMySQL¡¢PostgreSQLÌØÐÔ¶Ô±È

¡¡Ëæ×ÅÏÖ´úÊý¾Ý¿â¿ÉÓÃÌØÕ÷¼¯µÄѸËÙÔö¼Ó£¬ºÜÄÑÇø·ÖÊëºÃÊ뻵¡£ÀýÈçOracleÀï¾ÍÓÐÐí¶àÄã¿ÉÄÜ´ÓÀ´¶¼²»ÐèÒªµÄ¸ß¼¶Êý¾Ý²Ö¿âÌØÕ÷¡£´ËÍâÒ²¿ÉÄÜÓÐһЩÆäËü²»¿É»òȱµÄÌØÕ÷±ÈÈçACIDÊÂÎñÌØÐÔ¡£ÎÒÃÇÀ´¿´Ò»¿´Ö÷ÒªµÄÒ»Ð©ÌØÕ÷£¬±ÈÈç´æ´¢¹ý³Ì£¬ÊÓͼ£¬¿ìÕÕ£¬±íÊý¾ÝÀàÐͺÍÊÂÎñµÈµÈ¡£Í¬Ê±ÎÒÃÇ·ÖÎöÒ»ÏÂPostgresql£¬MySQLºÍOracleÕ⼸¸öÊý¾Ý¿â£¬È»º ......

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 ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ