µÚÒ»·¶ÎÄÍø - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

Oracle+performance

À´Ô´£ºÓû§·ÖÏí ʱ¼ä£º2026/1/1 7:54:07 ±¾ÎÄÓÉloading ·ÖÏí ÏÂÔØÕâÆªÎĵµÊÖ»ú°æ
˵Ã÷£ºÎÄÕÂÄÚÈݽö¹©Ô¤ÀÀ£¬²¿·ÖÄÚÈÝ¿ÉÄܲ»È«£¬ÐèÒªÍêÕûÎĵµ»òÕßÐèÒª¸´ÖÆÄÚÈÝ£¬ÇëÏÂÔØwordºóʹÓá£ÏÂÔØwordÓÐÎÊÌâÇëÌí¼Ó΢ÐźÅ:xxxxxxx»òQQ£ºxxxxxx ´¦Àí£¨¾¡¿ÉÄܸøÄúÌṩÍêÕûÎĵµ£©£¬¸ÐлÄúµÄÖ§³ÖÓëÁ½⡣

OR KEY2 = 20 £¨·µ»Ø×î¶à¼Ç¼£© ORACLE ÄÚ²¿½«ÒÔÉÏת»»Îª

WHERE KEY1 = 10 AND£¨£¨NOT KEY1 = 10£© AND KEY2 = 20£© ÒëÕß°´£º

ÏÂÃæµÄ²âÊÔÊý¾Ý½ö¹©²Î¿¼£º £¨a = 1003 ·µ»ØÒ»Ìõ¼Ç¼ £¬ b = 1 ·µ»Ø1003Ìõ¼Ç¼£© SQL> select * from unionvsor /*1st test*/ 2 where a = 1003 or b = 1£» 1003 rows selected. Execution Plan

---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE 1 0 CONCATENATION

2 1 TABLE ACCESS £¨BY INDEX ROWID£© OF 'UNIONVSOR' 3 2 INDEX £¨RANGE SCAN£© OF 'UB' £¨NON-UNIQUE£© 4 1 TABLE ACCESS £¨BY INDEX ROWID£© OF 'UNIONVSOR' 5 4 INDEX £¨RANGE SCAN£© OF 'UA' £¨NON-UNIQUE£© Statistics

---------------------------------------------------------- 0 recursive calls 0 db block gets 144 consistent gets 0 physical reads 0 redo size

63749 bytes sent via SQL*Net to client 7751 bytes received via SQL*Net from client 68 SQL*Net roundtrips to/from client 0 sorts £¨memory£© 0 sorts £¨disk£© 1003 rows processed

SQL> select * from unionvsor /*2nd test*/ 2 where b = 1 or a = 1003 £» 1003 rows selected. Execution Plan

---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE 1 0 CONCATENATION

2 1 TABLE ACCESS £¨BY INDEX ROWID£© OF 'UNIONVSOR' 3 2 INDEX £¨RANGE SCAN£© OF 'UA' £¨NON-UNIQUE£© 4 1 TABLE ACCESS £¨BY INDEX ROWID£© OF 'UNIONVSOR' 5 4 INDEX £¨RANGE SCAN£© OF 'UB' £¨NON-UNIQUE£© Statistics

---------------------------------------------------------- 0 recursive calls 0 db block gets

143 consistent gets 0 physical reads 0 redo size

63749 bytes sent via SQL*Net to client 7751 bytes received via SQL*Net from client

68 SQL*Net roundtrips to/from client 0 sorts £¨memory£© 0 sorts £¨disk£© 1003 rows processed

SQL> select * from unionvsor /*3rd test*/ 2 where a = 1003 3 union

4 select * from unionvsor 5 where b = 1£»

1003 rows selected. Execution Plan

---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE 1 0 SORT £¨UNIQUE£© 2 1 UNION-ALL

3 2 TABLE ACCESS £¨BY INDEX ROWID£© OF 'UNIONVSOR' 4 3 INDEX £¨RANGE SCAN£© OF 'UA' £¨NON-UNIQUE£© 5 2 TABLE ACCESS £¨BY INDEX ROWID£© OF 'UNIONVSOR' 6 5 INDEX £¨RANGE SCAN£© OF 'UB' £¨NON-UNIQUE£© Statistics

---------------------------------------------------------- 0 recursive calls 0 db block gets 10 consistent gets 0 physical reads 0 redo size

63735 bytes sent via SQL*Net to client 7751 bytes received via SQL*Net from client

68 SQL*Net roundtrips to/from client 1 sorts £¨memory£© 0 sorts £¨disk£© 1003 rows processed

ÓÃUNIONµÄЧ¹û¿ÉÒÔ´Óconsistent getsºÍ SQL*NETµÄÊý¾Ý½»»»Á¿µÄ¼õÉÙ¿´³ö 37. ÓÃINÀ´Ìæ»»OR

ÏÂÃæµÄ²éѯ¿ÉÒÔ±»¸üÓÐЧÂʵÄÓï¾äÌæ»»£º µÍЧ£º SELECT¡­

FROM LOCATION WHERE LOC_ID = 10 OR LOC_ID = 20 OR LOC_ID = 30 ¸ßЧ£º

SELECT?

FROM LOCATION

WHERE LOC_IN IN £¨10£¬20£¬30£©£»

ÒëÕß°´£ºÕâÊÇÒ»Ìõ¼òµ¥Ò׼ǵĹæÔò£¬µ«ÊÇʵ¼ÊµÄÖ´ÐÐЧ¹û»¹Ðë¼ìÑ飬ÔÚORACLE8iÏ£¬Á½ÕßµÄÖ´Ðз¾¶ËƺõÊÇÏàͬµÄ¡£

38. ±ÜÃâÔÚË÷ÒýÁÐÉÏʹÓÃIS NULLºÍIS NOT NULL ±ÜÃâÔÚË÷ÒýÖÐʹÓÃÈκοÉÒÔΪ¿ÕµÄÁУ¬ORACLE½«ÎÞ·¨Ê¹ÓøÃË÷Òý¡£¶ÔÓÚµ¥ÁÐË÷Òý£¬Èç¹ûÁаüº¬¿ÕÖµ£¬Ë÷ÒýÖн«²»´æÔڴ˼Ǽ¡£ ¶ÔÓÚ¸´ºÏË÷Òý£¬Èç¹ûÿ¸öÁж¼Îª¿Õ£¬Ë÷ÒýÖÐͬÑù²»´æÔڴ˼Ǽ¡£ Èç¹ûÖÁÉÙÓÐÒ»¸öÁв»Îª¿Õ£¬Ôò¼Ç¼´æÔÚÓÚË÷ÒýÖС£ ¾ÙÀý£º

Èç¹ûΨһÐÔË÷Òý½¨Á¢ÔÚ±íµÄAÁкÍBÁÐÉÏ£¬ ²¢ÇÒ±íÖдæÔÚÒ»Ìõ¼Ç¼µÄA£¬BֵΪ£¨123£¬null£© £¬ ORACLE½«²»½ÓÊÜÏÂÒ»Ìõ¾ßÓÐÏàͬA£¬BÖµ£¨123£¬null£©µÄ¼Ç¼£¨²åÈ룩¡£ È»¶øÈç¹ûËùÓеÄË÷ÒýÁж¼Îª¿Õ£¬ORACLE½«ÈÏΪÕû¸ö¼üֵΪ¿Õ¶ø¿Õ²»µÈÓÚ¿Õ¡£ Òò´ËÄã¿ÉÒÔ²åÈë1000Ìõ¾ßÓÐÏàͬ¼üÖµµÄ¼Ç¼£¬µ±È»ËüÃǶ¼Êǿգ¡ ÒòΪ¿ÕÖµ²»´æÔÚÓÚË÷ÒýÁÐÖУ¬ËùÒÔWHERE×Ó¾äÖжÔË÷ÒýÁнøÐпÕÖµ±È½Ï½«Ê¹ORACLEÍ£ÓøÃË÷Òý¡£ ¾ÙÀý£º

µÍЧ£º £¨Ë÷ÒýʧЧ£© SELECT ¡­

FROM DEPARTMENT

WHERE DEPT_CODE IS NOT NULL£» ¸ßЧ£º £¨Ë÷ÒýÓÐЧ£© SELECT ¡­

FROM DEPARTMENT WHERE DEPT_CODE >=0£» 39. ×ÜÊÇʹÓÃË÷ÒýµÄµÚÒ»¸öÁÐ

Èç¹ûË÷ÒýÊǽ¨Á¢ÔÚ¶à¸öÁÐÉÏ£¬ Ö»ÓÐÔÚËüµÄµÚÒ»¸öÁУ¨leading column£©±»where×Ó¾äÒýÓÃʱ£¬ÓÅ»¯Æ÷²Å»áÑ¡ÔñʹÓøÃË÷Òý¡£

ÒëÕß°´£ºÕâÒ²ÊÇÒ»Ìõ¼òµ¥¶øÖØÒªµÄ¹æÔò¡£ ¼ûÒÔÏÂʵÀý¡£

SQL> create table multiindexusage £¨ inda number £¬ indb number £¬ descr varchar2£¨10£©£©£» Table created.

SQL> create index multindex on multiindexusage£¨inda£¬indb£©£» Index created.

SQL> set autotrace traceonly

SQL> select * from multiindexusage where inda = 1£» Execution Plan

---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE

1 0 TABLE ACCESS £¨BY INDEX ROWID£© OF 'MULTIINDEXUSAGE' 2 1 INDEX £¨RANGE SCAN£© OF 'MULTINDEX' £¨NON-UNIQUE£© SQL> select * from multiindexusage where indb = 1£» Execution Plan

---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE

1 0 TABLE ACCESS £¨FULL£© OF 'MULTIINDEXUSAGE'

ºÜÃ÷ÏÔ£¬ µ±½öÒýÓÃË÷ÒýµÄµÚ¶þ¸öÁÐʱ£¬ÓÅ»¯Æ÷ʹÓÃÁËÈ«±íɨÃè¶øºöÂÔÁËË÷Òý 40. ORACLEÄÚ²¿²Ù×÷

µ±Ö´Ðвéѯʱ£¬ORACLE²ÉÓÃÁËÄÚ²¿µÄ²Ù×÷¡£ ϱíÏÔʾÁ˼¸ÖÖÖØÒªµÄÄÚ²¿²Ù×÷¡£

ORACLE Clause ORDER BY UNION MINUS INTERSECT DISTINCT,MINUS,INTERSECT,UNION MIN,MAX,COUNT GROUP BY ROWNUM Queries involving Joins CONNECT BY

ÄÚ²¿²Ù×÷ SORT ORDER BY UNION-ALL MINUS INTERSECT SORT UNIQUE SORT AGGREGATE SORT GROUP BY COUNT or COUNT STOPKEY SORT JOIN,MERGE JOIN,NESTED LOOPS CONNECT BY 41. ÓÃUNION-ALL Ìæ»»UNION £¨ Èç¹ûÓпÉÄܵϰ£©

µ±SQLÓï¾äÐèÒªUNIONÁ½¸ö²éѯ½á¹û¼¯ºÏʱ£¬ÕâÁ½¸ö½á¹û¼¯ºÏ»áÒÔUNION-ALLµÄ·½Ê½±»ºÏ²¢£¬ È»ºóÔÚÊä³ö×îÖÕ½á¹ûǰ½øÐÐÅÅÐò¡£

Èç¹ûÓÃUNION ALLÌæ´úUNION£¬ ÕâÑùÅÅÐò¾Í²»ÊDZØÒªÁË¡£ ЧÂʾͻáÒò´ËµÃµ½Ìá¸ß¡£ ¾ÙÀý£º µÍЧ£º

SELECT ACCT_NUM£¬ BALANCE_AMT FROM DEBIT_TRANSACTIONS WHERE TRAN_DATE = ¡®31-DEC-95¡¯ UNION

SELECT ACCT_NUM£¬ BALANCE_AMT FROM DEBIT_TRANSACTIONS WHERE TRAN_DATE = ¡®31-DEC-95¡¯ ¸ßЧ£º

SELECT ACCT_NUM£¬ BALANCE_AMT FROM DEBIT_TRANSACTIONS WHERE TRAN_DATE = ¡®31-DEC-95¡¯ UNION ALL

SELECT ACCT_NUM£¬ BALANCE_AMT FROM DEBIT_TRANSACTIONS WHERE TRAN_DATE = ¡®31-DEC-95¡¯

ÒëÕß°´£ºÐèҪעÒâµÄÊÇ£¬UNION ALL ½«Öظ´Êä³öÁ½¸ö½á¹û¼¯ºÏÖÐÏàͬ¼Ç¼¡£ Òò´Ë¸÷λ»¹ÊÇÒª´ÓÒµÎñÐèÇó·ÖÎöʹÓÃUNION ALLµÄ¿ÉÐÐÐÔ¡£

UNION ½«¶Ô½á¹û¼¯ºÏÅÅÐò£¬Õâ¸ö²Ù×÷»áʹÓõ½SORT_AREA_SIZEÕâ¿éÄÚ´æ¡£ ¶ÔÓÚÕâ¿éÄÚ´æµÄÓÅ»¯Ò²ÊÇÏàµ±ÖØÒªµÄ¡£ ÏÂÃæµÄSQL¿ÉÒÔÓÃÀ´²éѯÅÅÐòµÄÏûºÄÁ¿ Select substr£¨name£¬1£¬25£© \£¬ substr£¨value£¬1£¬15£© \ from v$sysstat where name like 'sort%'

ËÑË÷¸ü¶à¹ØÓÚ£º Oracle+performance µÄÎĵµ
Oracle+performance.doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ£¬·½±ã¸´ÖÆ¡¢±à¼­¡¢ÊղغʹòÓ¡
±¾ÎÄÁ´½Ó£ºhttps://www.diyifanwen.net/c2gtje0box63bj0w6hwyx_5.html£¨×ªÔØÇë×¢Ã÷ÎÄÕÂÀ´Ô´£©
ÈÈÃÅÍÆ¼ö
Copyright © 2012-2023 µÚÒ»·¶ÎÄÍø °æÈ¨ËùÓÐ ÃâÔðÉùÃ÷ | ÁªÏµÎÒÃÇ
ÉùÃ÷ :±¾ÍøÕ¾×ðÖØ²¢±£»¤ÖªÊ¶²úȨ£¬¸ù¾Ý¡¶ÐÅÏ¢ÍøÂç´«²¥È¨±£»¤ÌõÀý¡·£¬Èç¹ûÎÒÃÇ×ªÔØµÄ×÷Æ·ÇÖ·¸ÁËÄúµÄȨÀû,ÇëÔÚÒ»¸öÔÂÄÚ֪ͨÎÒÃÇ£¬ÎÒÃǻἰʱɾ³ý¡£
¿Í·þQQ£ºxxxxxx ÓÊÏ䣺xxxxxx@qq.com
ÓåICP±¸2023013149ºÅ
Top