OracleÖÐ×éºÏË÷ÒýµÄʹÓÃÏê½â
ÔÚOracleÖпÉÒÔ´´½¨×éºÏË÷Òý£¬¼´Í¬Ê±°üº¬Á½¸ö»òÁ½¸öÒÔÉÏÁеÄË÷Òý¡£ÔÚ×éºÏË÷ÒýµÄʹÓ÷½Ã棬OracleÓÐÒÔÏÂÌØµã£º
1¡¢ µ±Ê¹ÓûùÓÚ¹æÔòµÄÓÅ»¯Æ÷£¨RBO£©Ê±£¬Ö»Óе±×éºÏË÷ÒýµÄǰµ¼ÁгöÏÖÔÚSQLÓï¾äµÄwhere×Ó¾äÖÐʱ£¬²Å»áʹÓõ½¸ÃË÷Òý£»
2¡¢ ÔÚʹÓÃOracle9i֮ǰµÄ»ùÓڳɱ¾µÄÓÅ»¯Æ÷£¨CBO£©Ê±£¬
Ö»Óе±×éºÏË÷ÒýµÄǰµ¼ÁгöÏÖÔÚSQLÓï¾äµÄwhere×Ó¾äÖÐʱ£¬²Å¿ÉÄÜ»áʹÓõ½¸ÃË÷Òý£¬ÕâÈ¡¾öÓÚÓÅ»¯Æ÷¼ÆËãµÄʹÓÃË÷ÒýµÄ³É±¾ºÍʹÓÃÈ«±íɨÃèµÄ³É
±¾£¬Oracle»á×Ô¶¯Ñ¡Ôñ³É±¾µÍµÄ·ÃÎÊ·¾¶£¨Çë¼ûÏÂÃæµÄ²âÊÔ1ºÍ²âÊÔ2£©£»
3¡¢ ´ÓOracle9iÆð£¬OracleÒýÈëÁËÒ»ÖÖеÄË÷ÒýɨÃ跽ʽ——Ë÷ÒýÌøÔ¾É¨Ã裨index skip
scan£©£¬ÕâÖÖɨÃ跽ʽֻÓлùÓڳɱ¾µÄÓÅ»¯Æ÷£¨CBO£©²ÅÄÜʹÓá£ÕâÑù£¬µ±SQLÓï¾äµÄwhere×Ó¾äÖм´Ê¹Ã»ÓÐ×éºÏË÷ÒýµÄǰµ¼ÁУ¬²¢ÇÒË÷ÒýÌøÔ¾É¨ÃèµÄ
³É±¾µÍÓÚÆäËûɨÃ跽ʽµÄ³É±¾Ê±£¬Oracle¾Í»áʹÓø÷½Ê½É¨Ãè×éºÏË÷Òý£¨Çë¼ûÏÂÃæµÄ²âÊÔ3£©£»
4¡¢ OracleÓÅ»¯Æ÷ÓÐʱ»á×ö³ö´íÎóµÄÑ¡Ôñ£¬ÒòΪËüÔÙ“´ÏÃ÷”£¬Ò²²»ÈçÎÒÃÇSQLÓï¾ä±àдÈËÔ±¸üÇå³þ±íÖÐÊý¾ÝµÄ·Ö²¼£¬ÔÚÕâÖÖÇé¿öÏ£¬Í¨¹ýʹÓÃÌáʾ£¨hint£©£¬ÎÒÃÇ¿ÉÒÔ°ïÖúOracleÓÅ»¯Æ÷×÷³ö¸üºÃµÄÑ¡Ôñ£¨Çë¼ûÏÂÃæµÄ²âÊÔ4£©¡£
¹ØÓÚÒÔÉÏÇé¿ö£¬ÎÒÃÇ·Ö±ð²âÊÔÈçÏ£º
ÎÒÃÇ´´½¨²âÊÔ±íT£¬¸Ã±íµÄÊý¾ÝÀ´Ô´ÓÚOracleµÄÊý¾Ý×Öµä±íall_objects£¬±íTµÄ½á¹¹ÈçÏ£º
SQL> desc t
Ãû³Æ ÊÇ·ñΪ¿Õ? ÀàÐÍ
----------------------------------------- -------- ---------------------
OWNER NOT NULL VARCHAR2(30)
OBJECT_NAME NOT NULL VARCHAR2(30)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NOT NULL NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(18)
CREATED NOT NULL DATE
LAST_DDL_TIME NOT NULL DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)
±íÖеÄÊý¾Ý·Ö²¼Çé¿öÈçÏ£º
SQL> select object_type,count(*) from t group by object_type;
OBJECT_TYPE COUNT(*)
------------------ ----------
CONSUMER GROUP 20
EVALUATION CONTEXT 10
FUNCTION 360
INDEX 69
LIBRARY 20
LOB 20
OPERATOR 20
PACKAGE 1210
PROCEDURE 130
SYNONYM 16100
TABLE 180
TYPE 2750
VIEW 8600
ÒÑÑ¡Ôñ13ÐС£
SQL> select
Ïà¹ØÎĵµ£º
ÈçºÎ¶¨ÒåÓαêÀàÐÍ
TYPE ref_type_name IS REF CURSOR [RETURN return_type];
ÉùÃ÷Óαê±äÁ¿
cursor_name ref_type_name;
´Ó¼¼Êõµ×²ã¿´£¬Á½ÕßÊÇÏàͬµÄ¡£ÆÕͨplsql cursorÔÚ¶¨ÒåʱÊÇ“¾²Ì¬”µÄ¡£¶øRef cursors¿ÉÒÔ¶¯Ì¬´ò¿ª¡£
ÀýÈçÏÂÃæÀý×Ó£º
Declare
type rc is ref cursor;
cursor c is select * from dual ......
select sysdate from dual; ´Óα±í²éϵͳʱ¼ä£¬ÒÔĬÈϸñʽÊä³ö¡£
sysdate+(5/24/60/60) ÔÚϵͳʱ¼ä»ù´¡ÉÏÑÓ³Ù5Ãë
sysdate+5/24/60 ÔÚϵͳʱ¼ä»ù´¡ÉÏÑÓ³Ù5·ÖÖÓ
sysdate+5/24 ÔÚϵͳʱ¼ä»ù´¡ÉÏÑÓ³Ù5Сʱ
sysdate+5 ÔÚϵͳʱ¼ä»ù´¡ÉÏÑÓ³Ù5Ìì
ËùÒÔÈÕÆÚ¼ÆËãĬÈϵ¥Î»ÊÇÌì
round (sysdate,’day’) ²»ÊÇËijý ......
¸Õ²ÅÔÚÍøÉÏËÑÕâ¸öÎÊÌâµÄʱºòËѵ½ITPUBÉÏyangtingkun²©¿ÍÀïµÄһƪÎÄÕ£¬Ð´µÄͦºÃµÄ£¬×Ô¼º¸´ÖÆÁËÒ»ÏÂËûµÄʵÑé¹ý³Ì£¬¼ÓÁ˵㲽ÖèÑéÖ¤ÁË×Ô¼ºµÄÏë·¨£¬Ò²½â¾öÁËÒÉÎÊ¡£
Ç°ÃæÐ´¹ýһƪÎÄÕ£¬½éÉܹýÎ¨Ò»Ô¼ÊøµÄÇé¿öÏ£¬Oracle´¦ÀíNULLµÄÌØµã¡£¼òµ¥µÄ˵£¬¾ÍÊÇÈç¹û¶à¸öÁй¹³ÉÁËΨһ£¬ÇÒÆäÖаüº¬Ò»¸öÒÔÉϵÄNULL£¬ÄÇôOracle»áÒªÇó²»ÎªNULL ......
oracleÖÐÁ¬½ÓÓë»á»°²»ÊÇÒ»¸ö¸ÅÄî!!!
ÔÚOracleÖУ¬Á¬½ÓÖ»Êǿͻ§½ø³ÌºÍÊý¾Ý¿âʵÀýÖ®¼äµÄÒ»ÌõÌØÊâÏß·£¬×î³£¼ûµÄ¾ÍÊÇÍøÂçÁ¬½Ó¡£ÕâÌõÁ¬½Ó¿ÉÄÜÁ¬½Óµ½Ò»¸öרÓ÷þÎñÆ÷½ø³Ì£¬Ò²¿ÉÄÜÁ¬½Óµ½µ÷¶ÈÆ÷¡£ÈçǰËùÊö£¬Á¬½ÓÉÏ¿ÉÒÔÓÐ0¸ö»ò¶à¸ö»á»°£¬Õâ˵Ã÷¿ÉÒÔÓÐÁ¬½Ó¶øÎÞÏàÓ¦µÄ»á»°¡£ÁíÍ⣬һ¸ö»á»°¿ÉÒÔÓÐÁ¬½ÓÒ²¿ÉÒÔûÓÐÁ¬½Ó¡£Ê¹Óø߼¶Oracle N ......
µÚ¾ÅÕÂ½Ú :´¥·¢Æ÷±àÂë
´¥·¢Æ÷ÊÇ´æ´¢ÔÚÊý¾Ý¿â´æÖÐÒþʽµÄÔËÐлòÕß±»´¥·¢µÄÒ»¶Î³ÌÐò£¬µ±Ä³Ð©Ê¼þ·¢Éú¡£Í¨³£Çé¿öÏ£¬´¥·¢Æ÷ÖÐÖ§³Ö¿ÉÖ´ÐеÄÒ»¶Îpl/sql´úÂë¿é£¬µ±Ò»¸öinsert,update,»òÕßdeleteÃüÃû·¢ÉúÔÚÒ»¸ö±í»òÕßÊÓͼÉϵÄʱºò¡£ÆäÒ²Ö§³ÖϵͳºÍÊý¾Ý¿â»òÕß·½°¸Ê¼þ.oracleÊý¾Ý¿âÒ²Ö§³Ö´¥·¢Æ÷Öк¬Ó ......