OracleµÄÓÅ»¯Æ÷ÓÐÁ½ÖÖÓÅ»¯·½Ê½(Ò»)
	
    
    
	OracleµÄÓÅ»¯Æ÷ÓÐÁ½ÖÖÓÅ»¯·½Ê½(ÕûÀí), 2010-04-13
RBO·½Ê½£º»ùÓÚ¹æÔòµÄÓÅ»¯·½Ê½(Rule-Based Optimization£¬¼ò³ÆÎªRBO)
  ÓÅ»¯Æ÷ÔÚ·ÖÎöSQLÓï¾äʱ,Ëù×ñѵÄÊÇOracleÄÚ²¿Ô¤¶¨µÄһЩ¹æÔò¡£±ÈÈçÎÒÃdz£¼ûµÄ£¬µ±Ò»¸öwhere×Ó¾äÖеÄÒ»ÁÐÓÐË÷Òýʱȥ×ßË÷Òý¡£ 
CBO·½Ê½£º»ùÓÚ´ú¼ÛµÄÓÅ»¯·½Ê½(Cost-Based Optimization£¬¼ò³ÆÎªCBO)
ËüÊÇ¿´Óï¾äµÄ´ú¼Û(Cost),ÕâÀïµÄ´ú¼ÛÖ÷ÒªÖ¸CpuºÍÄÚ´æ¡£ÓÅ»¯Æ÷ÔÚÅжÏÊÇ·ñÓÃÕâÖÖ·½Ê½Ê±,Ö÷Òª²ÎÕÕµÄÊÇ±í¼°Ë÷ÒýµÄͳ¼ÆÐÅÏ¢¡£Í³¼ÆÐÅÏ¢¸ø³ö±íµÄ´óС¡¢ÓÐÉÙÐС¢Ã¿Ðеij¤¶ÈµÈÐÅÏ¢¡£ÕâЩͳ¼ÆÐÅÏ¢Æð³õÔÚ¿âÄÚÊÇûÓеģ¬ÊÇ×öanalyzeºó²Å³öÏֵģ¬ºÜ¶àʱºò¹ýÆÚͳ¼ÆÐÅÏ¢»áÁîÓÅ»¯Æ÷×ö³öÒ»¸ö´íÎóµÄÖ´Ðмƻ®,Òò´ËÓ¦¼°Ê±¸üÐÂÕâЩÐÅÏ¢¡£
 
ËùÒÔhintÒ²²»ÀýÍ⣬³ýÁË/*+rule*/ÆäËûµÄ¶¼ÊÇCBOÓÅ»¯·½Ê½
ÓÅ»¯Ä£Ê½°üÀ¨Rule¡¢Choose¡¢First rows¡¢All rowsËÄÖÖ·½Ê½£º
Rule£º»ùÓÚ¹æÔòµÄ·½Ê½¡£
Choose£ºÄ¬ÈϵÄÇé¿öÏÂOracleÓõıãÊÇÕâÖÖ·½Ê½¡£Ö¸µÄÊǵ±Ò»¸ö±í»òË÷ÒýÓÐͳ¼ÆÐÅÏ¢£¬Ôò×ßCBOµÄ·½Ê½£¬Èç¹û±í»òË÷Òýûͳ¼ÆÐÅÏ¢£¬±íÓÖ²»ÊÇÌØ±ðµÄС£¬¶øÇÒÏàÓ¦µÄÁÐÓÐË÷Òýʱ£¬ÄÇô¾Í×ßË÷Òý£¬×ßRBOµÄ·½Ê½¡£
PS: ÓÅ»¯Ä£Ê½ÊÇCHOOSEµÄÇé¿öÏ£¬¿´Cost²ÎÊýÊÇ·ñÓÐÖµÀ´¾ö¶¨²ÉÓÃCBO»¹ÊÇRBO£º
SELECT STATEMENT [CHOOSE] Cost=1234 --CostÓÐÖµ£¬²ÉÓÃCBO
SELECT STATEMENT [CHOOSE] Cost=    --CostΪ¿Õ£¬²ÉÓÃRBO
PSµÄÐÅÏ¢ÊÇ´ÓÁíÍâÆªÌû×ÓÀï¿´µ½µÄ,COSTÓÐÖµÓ¦¸ÃÊÇÖ¸“ÓÐͳ¼ÆÐÅÏ¢”µÄº¬Òå,ÔÝʱÈç´ËÀí½â.
 First Rows£ºËüÓëChoose·½Ê½ÊÇÀàËÆµÄ£¬Ëù²»Í¬µÄÊǵ±Ò»¸ö±íÓÐͳ¼ÆÐÅϢʱ£¬Ëü½«ÊÇÒÔ×î¿ìµÄ·½Ê½·µ»Ø²éѯµÄ×îÏȵļ¸ÐУ¬´Ó×ÜÌåÉϼõÉÙÁËÏìӦʱ¼ä¡£ 
All Rows:Ò²¾ÍÊÇÎÒÃÇËù˵µÄCostµÄ·½Ê½£¬µ±Ò»¸ö±íÓÐͳ¼ÆÐÅϢʱ£¬Ëü½«ÒÔ×î¿ìµÄ·½Ê½·µ»Ø±íµÄËùÓеÄÐУ¬´Ó×ÜÌåÉÏÌá¸ß²éѯµÄÍÌÍÂÁ¿¡£Ã»ÓÐͳ¼ÆÐÅÏ¢Ôò×ßRBOµÄ·½Ê½
 
OracleÈçºÎÅäÖÃĬÈϵÄÓÅ»¯¹æÔò 
A¡¢Instance¼¶±ðÎÒÃÇ¿ÉÒÔͨ¹ýÔÚinitSID.oraÎļþÖÐÉ趨OPTIMIZER_MODE=RULE/CHOOSE/FIRST_ROWS/ALL_ROWSÈç¹ûûÉ趨OPTIMIZER_MODE²ÎÊýÔòĬÈÏÓõÄÊÇChoose·½Ê½¡£ 
B¡¢Sessions¼¶±ðͨ¹ýALTER SESSION SET OPTIMIZER_MODE=RULE/CHOOSE/FIRST_ROWS/ALL_ROWSÀ´É趨.
C¡¢Óï¾ä¼¶±ðÓÃHint£¨/*+ ... */£©À´É趨 
Ϊʲô±íµÄij¸ö×Ö¶ÎÃ÷Ã÷ÓÐË÷Òý£¬µ«Ö´Ðмƻ®È´²»×ßË÷Òý£¿ 
    1¡¢ÓÅ»¯Ä£Ê½ÊÇall_rowsµÄ·½Ê½ 
    2¡¢±í×÷¹ýanalyze£¬ÓÐͳ¼ÆÐÅÏ¢ 
    3
    
     
	
	
    
    
	Ïà¹ØÎĵµ£º
        
    
    --ÉèÖÃÃÜÂë·¨¹ýÆÚ
alter profile default limit PASSWORD_LIFE_TIME unlimited;
alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;
--È¡ÏûÉó¼Æ
alter system set audit_trail='FALSE' scope=spfile;
--¶¨ÒåÁ¬½ÓÊý¾Ý¿âµÄ×î´ó½ø³ÌÊý
alter system set processes=1024 scope=spfile;
--¹Ø±ÕÀ¬»ø»ØÊÕÕ¾
al ......
	
    
        
    
    connect by Êǽṹ»¯²éѯÖÐÓõ½µÄ£¬Æä»ù±¾Óï·¨ÊÇ£º 
select ... from tablename start with Ìõ¼þ1 
connect by Ìõ¼þ2 
where Ìõ¼þ3; 
Àý£º 
select * from table 
start with org_id = 'HBHqfWGWPy' 
connect by prior org_id = parent_id; 
¼òµ¥ËµÀ´Êǽ«Ò»¸öÊ÷×´½á¹¹´æ´¢ÔÚÒ»ÕűíÀ±ÈÈçÒ»¸ö±íÖдæÔÚÁ½¸ö×Ö¶Î: 
 ......
	
    
        
    
          Oracle Purchasing²»Äܲ鿴PO»ò開PO,並ÇÒÓÃ戶ÓÐ權ÏÞ開PO¡£這樣Çé況¿ÉÄÜÓв»ÉÙͬÈÊÒ²ÓöÉÏ類ËÆ問題¡£¾ß體Çé況ÈçÏÂ圖:
       
      Ê×ÏÈ,²é¿´Óà ......
	
    
        
    
    ORACLEÔÚ¹ØÏµÊý¾Ý¿âÍ⣬ÈÚÈëÁËÃæÏò¶ÔÏóµÄÔªËØ£¬±ÈÈç¿ÉÒÔ´´½¨type£¬typeÖ®¼ä¿ÉÒԼ̳У¬type¿ÉÒÔ´ø¹¹Ô캯Êý¡¢ÅÅÐòº¯Êý¡¢¸÷ÖÖ¸÷ÑùµÄ³ÉÔ±º¯Êý¡¢´æ´¢¹ý³ÌµÈµÈ¡£
¶ÔÏó±íÊÇÖ¸¸Ã±íµÄÒ»ÐоÍÊÇÒ»¸ö¶ÔÏó£¬ÓÐÒ»¸öOID(object ID)£¬¶ÔÏó±íÖ®¼äûÓÐÖ÷Íâ¼ü¹ØÁªµÄ¸ÅÄΪÁËÌåÏÖÕâ²ã¹ØÏµ£¬oracleÖÐÓÃÁËref¶ÔÏóÀ´ÊµÏÖ¡£
ÏÂÃæÀý×Ó£¬´´½¨Ò»¸öµ ......
	
    
        
    
         sysÊÇOracleÊý¾Ý¿âÖÐȨÏÞ×î¸ßµÄÕʺţ¬¾ßÓÐcreate databaseµÄȨÏÞ£¬¶øsystemûÓÐÕâ¸öȨÏÞ£¬sysµÄ½ÇÉ«ÊÇsysdba£¬systemµÄ½ÇÉ«ÊÇsysoper¡£ 
¡¡¡¡ÆäÓà¾ÍÊÇËûÃÇÁ½¸öÓû§¹²ÓеÄȨÏÞÁË£º 
¡¡¡¡startup/shutdown/dbaÁ½¸öÓû§¶¼ÊÇ¿ÉÒÔ¹ÜÀíµÄ¡£ 
¡¡¡¡Æ½Ê±ÓÃsystemÀ´¹ÜÀíÊý¾Ý¿â¾Í¿ÉÒÔÁË¡£Õâ¸öÓû§µÄȨÏÞ¶Ô ......