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£©ÖеÄÄÚ´æ¿ÉÒÔ±»ËùÓеÄÊý¾Ý¿âÓû§¹²Ïí¡£ Òò´
Ïà¹ØÎĵµ£º
insert into dts_auction_comments (id,auction_id,user_id,user_nick,comments,gmt_create,gmt_modified,status,comm_type)
values(409,127380, ......
µ±±¾»ú°²×°ÁËORACLEÊý¾Ý¿âºó£¬ÔÙ°²×°ÔËÐÐOC4JµÄ»°£¬»·¾³±äÁ¿“ORACLE_HOME”ÓëORACLEÊý¾Ý¿âÓгåÍ»£¬¿ÉÒÔ°´ÕÕÈçÏ·½·¨½â¾ö´ËÎÊÌ⣺
·½·¨Ò»
µÚÒ»²½£ºÔÚ»·¾³±äÁ¿ÖÐн¨“OC4J_HOME”£¬Ö¸¶¨µ½ÄãµÄOC4J°²×°¸ùĿ¼£»
µÚ¶þ²½£º´ò¿ªOC4J°²×°µÄĿ¼£¬¼´../OC4J/bin/£¬ÀïÃæÓÐÒ»¸öoc4j.cmd£¬ÓÒ¼üµ¥»÷¸ÃÎļþ£¬Ñ ......
1¡¢ Í£Ö¹oracleËùÓеķþÎñ£¨¿ªÊ¼--ÔËÐÐ--ÊäÈëservices.msc£©
2¡¢ ɾ³ý×¢²á±íÉϵÄORACLEµÄÓйؼüÖµ(¿ªÊ¼-->ÔËÐÐ-->ÊäÈëregedit£©½«HKEY_LOACAL_MACHINE/SOFTWAREϵÄÖ÷¼üORACLEÈ«²¿É¾³ý¡£
3. ÏÂÃæÉ¾³ýOracle·þÎñ£º½øÈëHKEY_LOACAL_MACHINE/SYSTEMÖ÷¼üÏ£¬ÔÚControlSet001¡¢ControlSet002¡¢CurrentControlSet--> ......
80¡£LAST
¹¦ÄÜÃèÊö£º´ÓDENSE_RANK·µ»ØµÄ¼¯ºÏÖÐÈ¡³öÅÅÔÚ×îºóÃæµÄÒ»¸öÖµµÄÐУ¨¿ÉÄܶàÐУ¬ÒòΪֵ¿ÉÄÜÏàµÈ£©£¬Òò´ËÍêÕûµÄÓï·¨ÐèÒªÔÚ¿ªÊ¼´¦¼ÓÉÏÒ»¸ö¼¯ºÏº¯ÊýÒÔ´ÓÖÐÈ¡³ö¼Ç¼
SAMPLE£ºÏÂÃæÀý×ÓÖÐDENSE_RANK°´²¿ÃÅ·ÖÇø£¬ÔÙ°´Ó¶½ðcommission_pctÅÅÐò£¬FIRSTÈ¡³öÓ¶½ð×îµÍµÄ¶ÔÓ¦µÄËùÓÐÐУ¬È»ºóÇ°ÃæµÄMAXº¯Êý´ÓÕâ¸ö¼¯ºÏÖÐÈ¡³öнˮ×îµ ......
CREATE OR REPLACE TYPE ty_str_array IS TABLE OF VARCHAR2 (4000);
CREATE OR REPLACE FUNCTION fn_split (p_str IN VARCHAR2, p_delimiter IN VARCHAR2)
RETURN ty_str_split
IS
j INT := 0;
i INT := 1;
len INT := 0;
&nbs ......