OracleÓï¾äÓÅ»¯£µ£³¸ö¹æÔòÏê½â
OracleÓï¾äÓÅ»¯£µ£³¸ö¹æÔòÏê½â(1)
Oracle sql ÐÔÄÜÓÅ»¯µ÷Õû 1. Ñ¡ÓÃÊʺϵÄORACLEÓÅ»¯Æ÷
ORACLEµÄÓÅ»¯Æ÷¹²ÓÐ3ÖÖ£º
a. RULE £¨»ùÓÚ¹æÔò£©
b. COST £¨»ùÓڳɱ¾£©
c. CHOOSE £¨Ñ¡ÔñÐÔ£©
ÉèÖÃȱʡµÄÓÅ»¯Æ÷£¬¿ÉÒÔͨ¹ý¶Ôinit.oraÎļþÖÐOPTIMIZER_MODE²ÎÊýµÄ¸÷ÖÖÉùÃ÷£¬ÈçRULE£¬COST£¬CHOOSE£¬ALL_ROWS£¬FIRST_ROWS . Ä㵱ȻҲÔÚSQL¾ä¼¶»òÊǻỰ£¨session£©¼¶¶ÔÆä½øÐи²¸Ç¡£
ΪÁËʹÓûùÓڳɱ¾µÄÓÅ»¯Æ÷£¨CBO£¬ Cost-Based Optimizer£© £¬ Äã±ØÐë¾³£ÔËÐÐanalyze ÃüÁÒÔÔö¼ÓÊý¾Ý¿âÖеĶÔÏóͳ¼ÆÐÅÏ¢£¨object statistics£©µÄ׼ȷÐÔ¡£
Èç¹ûÊý¾Ý¿âµÄÓÅ»¯Æ÷ģʽÉèÖÃΪѡÔñÐÔ£¨CHOOSE£©£¬ÄÇôʵ¼ÊµÄÓÅ»¯Æ÷ģʽ½«ºÍÊÇ·ñÔËÐйýanalyzeÃüÁîÓйء£ Èç¹ûtableÒѾ±»analyze¹ý£¬ ÓÅ»¯Æ÷ģʽ½«×Ô¶¯³ÉΪCBO £¬ ·´Ö®£¬Êý¾Ý¿â½«²ÉÓÃRULEÐÎʽµÄÓÅ»¯Æ÷¡£
ÔÚȱʡÇé¿öÏ£¬ORACLE²ÉÓÃCHOOSEÓÅ»¯Æ÷£¬ÎªÁ˱ÜÃâÄÇЩ²»±ØÒªµÄÈ«±íɨÃ裨full table scan£© £¬ Äã±ØÐ뾡Á¿±ÜÃâʹÓÃCHOOSEÓÅ»¯Æ÷£¬¶øÖ±½Ó²ÉÓûùÓÚ¹æÔò»òÕß»ùÓڳɱ¾µÄÓÅ»¯Æ÷¡£
2. ·ÃÎÊTableµÄ·½Ê½ORACLE ²ÉÓÃÁ½ÖÖ·ÃÎʱíÖмǼµÄ·½Ê½£º
a. È«±íɨÃè
È«±íɨÃè¾ÍÊÇ˳ÐòµØ·ÃÎʱíÖÐÿÌõ¼Ç¼¡£ ORACLE²ÉÓÃÒ»´Î¶ÁÈë¶à¸öÊý¾Ý¿é£¨database block£©µÄ·½Ê½ÓÅ»¯È«±íɨÃè¡£
b. ͨ¹ýROWID·ÃÎʱí
Äã¿ÉÒÔ²ÉÓûùÓÚROWIDµÄ·ÃÎÊ·½Ê½Çé¿ö£¬Ìá¸ß·ÃÎʱíµÄЧÂÊ£¬ ROWID°üº¬Á˱íÖмǼµÄÎïÀíλÖÃÐÅÏ¢……ORACLE²ÉÓÃË÷Òý£¨INDEX£©ÊµÏÖÁËÊý¾ÝºÍ´æ·ÅÊý¾ÝµÄÎïÀíλÖã¨ROWID£©Ö®¼äµÄÁªÏµ¡£ ͨ³£Ë÷ÒýÌṩÁË¿ìËÙ·ÃÎÊROWIDµÄ·½·¨£¬Òò´ËÄÇЩ»ùÓÚË÷ÒýÁеIJéѯ¾Í¿ÉÒԵõ½ÐÔÄÜÉϵÄÌá¸ß¡£
3. ¹²ÏíSQLÓï¾ä
ΪÁ˲»Öظ´½âÎöÏàͬµÄSQLÓï¾ä£¬ÔÚµÚÒ»´Î½âÎöÖ®ºó£¬ ORACLE½«SQLÓï¾ä´æ·ÅÔÚÄÚ´æÖС£Õâ¿éλÓÚϵͳȫ¾ÖÇøÓòSGA£¨system global area£©µÄ¹²Ïí³Ø£¨shared buffer pool£©ÖеÄÄÚ´æ¿ÉÒÔ±»ËùÓеÄÊý¾Ý¿âÓû§¹²Ïí¡£ Òò´
Ïà¹ØÎĵµ£º
רÓ÷þÎñÆ÷£ºÒ»¸ö¿Í»§¶ËÁ¬½Ó¶ÔÓ¦Ò»¸ö·þÎñÆ÷½ø³Ì
¹²Ïí·þÎñÆ÷£º¶à¸ö¿Í»§¶ËÁ¬½Ó¶ÔÓ¦Ò»¸ö·þÎñÆ÷½ø³Ì£¬·þÎñÆ÷¶Ë´æÔÚÒ»¸ö½ø³Ìµ÷¶ÈÆ÷À´¹ÜÀí¡£
OracleȱʡÓõÄÊÇרÓ÷þÎñÆ÷ģʽ£¬Oracle¿ÉÒÔͬʱ֧³Ö¹²Ïí·þÎñÆ÷ºÍרÓ÷þÎñÆ÷ģʽ£¬¿ÉÒÔÖ¸¶¨Ò»¸ö»á»°Ê¹ÓÃרÓ÷þÎñÆ÷£¬ÁíÒ»¸ö»á»°Ê¹Óù²Ïí·þÎñÆ÷¡£
¹²Ïí·þÎñÆ÷¾ßÓÐÒÔÏÂһЩȱµã£º
1)¹² ......
1. ½«Êý¾Ý¿âÍêÈ«µ¼³ö
Óû§Ãûsystem ÃÜÂësystem µ¼³öµ½OracleÓû§Ä¿Â¼ÏµÄtestdb20100522.dmpÎļþÖÐ
#exp system/system@testdb file=testdb20100522.dmp full=y
2. ½«Êý¾Ý¿âÖÐsystemÓû§ÓësysÓû§µÄ±íµ¼³ö
#exp system/system@testdb file= testdb20100522.d ......
insert into
select * into t_dest from t_src; -- ÒªÇóÄ¿±ê±í²»´æÔÚ
insert into t_dest(a, b) select a, b from t_src; -- ÒªÇóÄ¿±ê±íÒÑ´æÔÚ
¶¯Ì¬SQL
execute immediate ......
80¡£LAST
¹¦ÄÜÃèÊö£º´ÓDENSE_RANK·µ»ØµÄ¼¯ºÏÖÐÈ¡³öÅÅÔÚ×îºóÃæµÄÒ»¸öÖµµÄÐУ¨¿ÉÄܶàÐУ¬ÒòΪֵ¿ÉÄÜÏàµÈ£©£¬Òò´ËÍêÕûµÄÓï·¨ÐèÒªÔÚ¿ªÊ¼´¦¼ÓÉÏÒ»¸ö¼¯ºÏº¯ÊýÒÔ´ÓÖÐÈ¡³ö¼Ç¼
SAMPLE£ºÏÂÃæÀý×ÓÖÐDENSE_RANK°´²¿ÃÅ·ÖÇø£¬ÔÙ°´Ó¶½ðcommission_pctÅÅÐò£¬FIRSTÈ¡³öÓ¶½ð×îµÍµÄ¶ÔÓ¦µÄËùÓÐÐУ¬È»ºóÇ°ÃæµÄMAXº¯Êý´ÓÕâ¸ö¼¯ºÏÖÐÈ¡³öнˮ×îµ ......