ÔÚJAVA Ô´³ÌÐòÖбàдSQLÓï¾äʱʹÓÃORACLE °ó¶¨±äÁ¿
ÔÚJAVAÖеÄSQL Óï¾äµÄ±àд·½Ã棬ûÓÐʹÓÃORACLE °ó¶¨±äÁ¿£¬ºÜ´ó³Ì¶ÈÉϽµµÍÁËÊý¾Ý¿âµÄÐÔÄÜ£¬±íÏÖÔÚÁ½¸ö·½Ã棺
1¡¢SQLÓï¾äÓ²·ÖÎö(Hard Parse)Ì«¶à£¬ÑÏÖØÏûºÄCPU×ÊÔ´£¬ÑÓ³¤ÁËSQLÓï¾ä×ܵÄÖ´ÐÐʱ¼ä
SQLÓï¾äµÄÖ´Ðйý³Ì·Ö¼¸¸ö²½Ö裺Óï·¨¼ì²é¡¢·ÖÎö¡¢Ö´ÐС¢·µ»Ø½á¹û¡£ÆäÖзÖÎöÓÖ·ÖΪӲ·ÖÎö(Hard Parse)ºÍÈí·ÖÎö(Soft Parse)¡£
Ò»ÌõSQLÓï¾äͨ¹ýÓï·¨¼ì²éºó£¬Oracle »áÏÈÈ¥shared pool ÖÐÕÒÊÇ·ñÓÐÏàͬµÄsql£¬Èç¹ûÕÒ×ÅÁË£¬¾Í½ÐÈí·ÖÎö£¬È»ºóÖ´ÐÐSQLÓï¾ä¡£
Ó²·ÖÎöÖ÷ÒªÊǼì²é¸ÃsqlËùÉæ¼°µ½µÄËùÓжÔÏóÊÇ·ñÓÐЧÒÔ¼°È¨Ï޵ȹØÏµ£¬È»ºó¸ù¾ÝRBO»òCBOģʽÉú³ÉÖ´Ðмƻ®£¬È»ºó²ÅÖ´ÐÐSQLÓï¾ä¡£
¿ÉÒÔ¿´³ö£¬Ó²·ÖÎö±ÈÈí·ÖÎö¶àÁ˺ܶද×÷£¬¶øÕâÀïÃæµÄ¹Ø¼üÊÇ“ÔÚshared pool ÖÐÊÇ·ñÓÐÏàͬµÄsql”£¬¶øÕâ¾ÍÈ¡¾öÓÚÊÇ·ñʹÓð󶨱äÁ¿¡£
2¡¢¹²Ïí³ØÖÐSQLÓï¾äÊýÁ¿Ì«¶à£¬ÖØÓÃÐÔ¼«µÍ£¬¼ÓËÙÁËSQLÓï¾äµÄÀÏ»¯£¬µ¼Ö¹²Ïí³ØË鯬¹ý¶à¡£
¹²Ïí³ØÖв»Í¬µÄSQLÓï¾äÊýÁ¿¾Þ´ó£¬¸ù¾ÝLRUÔÔò£¬Ò»Ð©Óï¾äÖð½¥ÀÏ»¯£¬×îÖÕ±»ÇåÀí³ö¹²Ïí³Ø£»ÕâÑù¾Íµ¼ÖÂshared_pool_size ÀïÃæÃüÖÐÂÊ
Ͻµ£¬¹²Ïí³ØË鯬Ôö¶à£¬¿ÉÓÃÄÚ´æ¿Õ¼ä²»×ã¡£¶øÎªÁËά»¤¹²Ïí³ØÄÚ²¿½á¹¹£¬ÐèҪʹÓÃlatch£¬Ò»ÖÖÄÚ²¿ÉúÃüÖÜÆÚºÜ¶ÌµÄlock£¬Õ⽫ʹÓôóÁ¿µÄcpu ×ÊÔ´£¬Ê¹µÃÐÔÄܼ±¾çϽµ¡£
²»Ê¹Óð󶨱äÁ¿Î¥±³ÁËoracle µÄshared pool µÄÉè¼ÆµÄÔÔò£¬Î¥±³ÁËÕâ¸öÉè¼ÆÓÃÀ´¹²ÏíµÄ˼Ïë¡£±àдjava ³ÌÐòʱ£¬ÎÒÃÇϰ¹ß¶¼ÊǶ¨ÒåJAVA µÄ³ÌÐò±äÁ¿£¬·ÅÈëSQL Óï¾äÖУ¬Èç
String v_id = 'xxxxx';
String v_sql = 'select name from table_a where id = ' + v_id ;
ÒÔÉÏ´úÂ룬¿´ÆðÀ´ÊÇʹÓÃÁ˱äÁ¿v_id £¬µ«ÕâÈ´ÊÇjava µÄ³ÌÐò±äÁ¿£¬¶ø²»ÊÇoracle µÄ°ó¶¨±äÁ¿£¬Óï¾ä´«µÝµ½Êý¾Ý¿âºó£¬´Ëjava µÄ³ÌÐò±äÁ¿ÒѾ±»Ìæ»»³É¾ßÌåµÄ³£Á¿Öµ£¬±ä³É£º
select * from table_a where name = 'xxxxx' ;
¼Ù¶¨Õâ¸öÓï¾äµÚÒ»´ÎÖ´ÐУ¬»á½øÐÐÓ²·ÖÎö¡£ºóÀ´£¬Í¬Ò»¶Îjava ´úÂëÖÐv_id Öµ·¢Ïֱ仯£¨v_id = 'yyyyyy'£©£¬Êý¾Ý¿âÓÖ½ÓÊÕµ½ÕâÑùµÄÓï¾ä£º
select * from table_a where name = 'yyyyyy' ;
ORACLE ²¢²»ÈÏΪÒÔÉÏÁ½ÌõÓï¾äÊÇÏàͬµÄÓï¾ä£¬Òò´Ë¶ÔµÚ¶þÌõÓï¾ä»áÓÖ×öÒ»´ÎÓ²·ÖÎö¡£ÕâÁ½ÌõÓï¾äµÄÖ´Ðмƻ®¿ÉÊÇÒ»ÑùµÄ£¡
Æäʵ£¬Ö»Ð轫ÒÔÉÏjava ´úÂë¸Ä³ÉÒÔÏÂÕâÑù£¬¾ÍʹÓÃÁËoracle µÄ°ó¶¨±äÁ¿£º
String v_id = 'xxxxx';
String v_sql = 'select name from table_a where id = ? '; //ǶÈë°ó¶¨±äÁ¿
stmt = con.prepareStatement( v_sql );
stmt.setString(
Ïà¹ØÎĵµ£º
Java NIO APIÏê½â
ÔÚJDK
1.4ÒÔǰ£¬JavaµÄIO²Ù×÷¼¯ÖÐÔÚjava.ioÕâ¸ö°üÖУ¬ÊÇ»ùÓÚÁ÷µÄ×èÈû£¨blocking£©API¡£¶ÔÓÚ´ó¶àÊýÓ¦ÓÃÀ´Ëµ£¬ÕâÑùµÄAPIʹÓúܷ½
±ã£¬È»¶ø£¬Ò»Ð©¶ÔÐÔÄÜÒªÇó½Ï¸ßµÄÓ¦Óã¬ÓÈÆäÊÇ·þÎñ¶ËÓ¦Óã¬ÍùÍùÐèÒªÒ»¸ö¸üΪÓÐЧµÄ·½Ê½À´´¦ÀíIO¡£´ÓJDK 1.4Æð£¬NIO
API×÷Ϊһ¸ö»ùÓÚ»º³åÇø£¬²¢ÄÜÌṩ·Ç×èÈû(non-blo ......
ѧϰOracle DBAÒ²°ë¸ö¶àѧÆÚÁË£¬½ñÌìÃÍÈ»²Å·¢ÏÖ£¬ÔÀ´ÎÒµÄÊ黹ÊǺÜеģ¬ÉϿβÙ×÷ʱºòÒ²Ö»ÊÇÖªµÀ´ó¸ÅÔõô×ö£¬µ«ÊÇÒªÕæµÄÈ«²¿×Ô¼º×ö£¬¶ø²»È¥·Ê黹ÊÇÓÐÒ»¶¨µÄÄѶȵģ¬ËùÒÔÄØ£¬½ñÌ쿪ʼ½«DBA´ÓÍ·¸´Ï°Ò»±é£¬Í¬Ê±ÔÙ²Ù×÷Ò»±é¡£
µÚÒ»Õ£¬Ñ§µÄÊÇOracleµÄÌåϵ½á¹¹£ ......
ORA-00604 error occurred at recursive SQL level string
Cause:An error occurred while processing a recursive SQL statement (a statement applying to internal dictionary tables).
Action:If the situation described in the next error on the stack can be corrected, do so; otherwise contact Oracle Custome ......
ÎÒÏÈÅ×שÒýÓñ:
1. ¿ª·¢ÐÔ: SQLSERVER²»ÄÜ,ORACLEÄÜ×°ÔÚUNIXÉÏ
2. ·ÖÇø±í: SQLSERVER²»Ä ......