Éî¶È¶Ô±ÈOracleÓëSQL Server——µÚ¶þ²¿·Ö
Êý¾Ý¿âʵÀý½á¹¹ ÊÂÎñÒ»ÖÂÐÔ(Transactional Consistency)ºÍ»ùÓÚʱ¼äµãµÄ»Ö¸´(Point-in-time Recovery) ϵͳԪÊý¾Ý
topÊý¾Ý¿âʵÀý½á¹¹
µ±OracleʵÀýÆô¶¯Ö®ºó£¬Ëù¿´µ½µÄ¾ÍÊÇÔÚ·þÎñÆ÷ÄÚ´æÉϵÄÒ»¸ö¸ö²»Í¬ÄÚ´æ¿é¼ÓÉϲúÉúµÄÓëÕâЩÄÚ´æ½»»¥µÄºǫ́½ø³Ì¡£OracleÎĵµ½«ÕâЩÄÚ´æ½á¹¹ºÍ½ø³ÌÊյĺÜÏêϸ¡£
ÓÉOracleʵÀýËùÕ¼ÓõÄÄÚ´æ¿é³ÉΪSGA£¨System Global Area£©£¬ËüµÄ´óС¿ÉÒÔͨ¹ýµ÷ÕûOracle³õʼ»¯²ÎÊý£¨initialisation parameter£©½øÐÐÐ޸ģ¬ÔÚSGAÀï±ßÖÁÉٻᴴ½¨3¸ö²»Í¬µÄÇøÓò£¬ËüÃÇ·Ö±ðÊÇ£º
Êý¾Ý¿é»º´æÇø£¨Database Buffer Cache£©ÕâÀﻺ´æµÄÊÇÊý¾Ý¿é¡£ºÍSQL ServerÒ»Ñù£¬Óû§²»»áÖ±½ÓµÄ·ÃÎÊÊý¾ÝÎļþÉϵÄÊý¾Ý£ºµ±¶ÁÈ¡Êý¾Ýʱ£¬Ïà¹ØµÄÊý¾Ý¿é»á´ÓÊý¾ÝÎļþÖп½±´µ½ÄÚ´æÖУ»ÐÞ¸ÄÊý¾ÝʱҲÊÇÐÞ¸ÄÄÚ´æÖеÄÊý¾Ý£¬È»ºóÔÙÓɵ¥¶ÀµÄ½ø³Ì½«Êý¾Ý»º´æÇøÖб»Ð޸ĵÄÊý¾ÝдÈëµ½Êý¾Ý¿âÖС£ÖØ×öÈÕÖ¾»º´æ£¨Redo Log Buffer£©SGAÖеÄÕâ¸öÇøÓòÁ¬ÐøµÄ¼Ç¼×ÅÊý¾Ý»º´æÇøÊý¾ÝÐ޸ĵļǼ£¬ÖØ×öÈÕÖ¾»º´æÖеÄÄÚÈݻᱻдÈëµ½ÔÚÏßÈÕÖ¾ÎļþÖÐÈ¥¡£¹²Ïí³Ø(Shared Pool£©SGAÖÐÓÐÒ»´ó¿éµÄÄÚ´æÓÃ×÷¹²Ïí³Ø£¬¹²Ïí³ØµÈ¼ÛÓÚSQL ServerÖеÄÖ´Ðлº´æ£¨Procedure Cache£©¡£ËüµÄÖ÷Òª×÷ÓþÍÊÇ»º´æÊý¾Ý¿âÖÐ×î½üÖ´ÐйýµÄSQLÓï¾ä¡£¹²Ïí³ØÓÉÏÂÃæµÄÄ£¿é×é³É£º Êý¾Ý×ֵ仺´æ£¨Dictionary Cache£©Êý¾Ý×ֵ仺´æ»º´æÁËOracle×î½üʹÓõÄÊý¾Ý×ÖµäÐÅÏ¢¡£¿â»º´æ£¨Library Cache£©Õâ¸öÇøÓò°üº¬ÁË×î½üÖ´ÐеÄSQLºÍPL/SQLÓï¾äºÍ¶ÔÓ¦µÄÖ´Ðмƻ®¡£SQLÇø»¹ÄܽøÒ»²½·Ö³É¹²ÏíÇøºÍ˽ÓÐÇø£º¹²ÏíSQLÇø±£´æµÄÓï¾ä¿ÉÒÔÓɶà¸öÓû§Ê¹ÓöøË½ÓÐÇø±£´æµÄÔòÊǸú¸÷¸öÁ¬½Ó¶ÔÓ¦µÄ°ó¶¨±äÁ¿µÄÐÅÏ¢¡£PL/SQLÊÇOracle¶ÔÓÚÐÐÒµ±ê×¼SQLµÄ³ÌÐòÀ©Õ¹£¬µ±PL/SQL³ÌÐòÖ´ÐÐʱ£¬ËüµÄ´úÂë»á¿½±´µ½¿â»º´æÖеĹ²ÏíPL/SQLÇøÖС£³ýÁË»º´æÖ´ÐдúÂëºÍÖ´Ðмƻ®Í⣬¿â»º´æ»¹°üº¬Ëø¡¢·§ÒÔ¼°×Ö·û¼¯µÈÐÅÏ¢¡£
¸ù¾ÝÄãËùʹÓõÄ×é¼þµÄ²»Ò»Ñù£¬OracleµÄSGAÖÐÒ²¿ÉÄÜ´æÔÚÆäËüһЩ¿ÉÑ¡µÄÄÚ´æÇøÓò¡£ÔÚOracleÖÐʹÓÃJavaÓ¦ÓÃʱҪʹÓõ½Java³Ø£¨Java Pool£©£¬OracleÄÚÖõı¸·Ý»Ö¸´¹¤¾ßRMAN£¨Recovery Manager£©ÒªÓõ½´ó³Ø£¨Large Pool£©£¬µ±Ê¹ÓÃOracle¸ß¼¶¶ÓÁлúÖÆÊ±ÒªÓõ½Á÷³Ø£¨Steams Pool£©¡£
ÉÏÃæ½éÉܵĸ÷¸öÄÚ´æÇøÓò¶¼ÊÇÊôÓÚSGAµÄÒ»²¿·Ö£¬ËüÃÇÊÇͨ¹ýÒ»ÐòÁеĽø³Ì£¨process£©À´ºÍÊý¾Ý¿â½øÐн»»¥¡£ÏÂÃæ¾Í¿ªÊ¼½éÉܰüÀ¨Óû§½ø³ÌºÍ·þÎñÆ÷½ø³ÌÔÚÄÚµÄOracle½ø³ÌÁË¡£
µ±Óû§»òÕßÊÇÓ¦ÓÃÁ¬½Óµ½OracleÊý¾Ý¿âʱ¾Í»á²úÉúÒ»¸öÓû§½ø³Ì£¨user process£©¡£ÔÚÒ»¸öÁ½²ãµÄϵͳ¼Ü¹¹ÖУ¬Óû§
Ïà¹ØÎĵµ£º
°ì·¨Ò»
select * from V$NLS_PARAMETERS
$conn = oci_connect('scott', 'donkey', 'demo', 'zhs16gbk');
while ($dat = oci_fetch_row($cur)) {
print_r(iconv('gb2312', 'utf-8', $dat[0])); //$nickname = mb_convert_encoding($dat[0], 'utf-8', 'gbk');&n ......
Oracle³£Ó÷ÖÎöº¯Êý
ROW_NUMBER
·µ»ØÓÐÐò×éÖÐÒ»ÐÐµÄÆ«ÒÆÁ¿£¬´Ó¶ø¿ÉÓÃÓÚ°´Ìض¨±ê×¼ÅÅÐòµÄÐкÅ
row_number() over(partition by ... order by ...)
RANK
¸ù¾ÝORDER BY×Ó¾äÖбí´ïʽµÄÖµ£¬´Ó²éѯ·µ»ØµÄÿһÐУ¬¼ÆËãËüÃÇÓëÆäËüÐеÄÏà¶ÔλÖá£×éÄÚµÄÊý¾Ý°´ORDER BY×Ó¾äÅÅÐò£¬È»ºó¸øÃ¿Ò»Ðи³Ò»¸öºÅ£¬´Ó¶øÐγÉÒ»¸öÐòÁУ¬¸ÃÐòÁ ......
Ò» ¸ÅÄî
ÓαêÊÇSQLµÄÒ»¸öÄڴ湤×÷Çø£¬ÓÉϵͳ»òÓû§ÒÔ±äÁ¿µÄÐÎʽ¶¨Òå¡£ÓαêµÄ×÷ÓþÍÊÇÓÃÓÚÁÙʱ´æ´¢´ÓÊý¾Ý¿âÖÐÌáÈ¡µÄÊý¾Ý¿é¡£ÔÚijЩÇé¿öÏ£¬ÐèÒª°ÑÊý¾Ý´Ó´æ·ÅÔÚ´ÅÅ̵ıíÖе÷µ½¼ÆËã»úÄÚ´æÖнøÐд¦Àí£¬×îºó½«´¦Àí½á¹ûÏÔʾ³öÀ´»ò×îÖÕд»ØÊý¾Ý¿â¡£ÕâÑùÊý¾Ý´¦ÀíµÄËٶȲŻáÌá¸ß£¬·ñÔòƵ·±µÄ´ÅÅÌÊý¾Ý½»»»»á½µµÍЧÂÊ¡£
¶þ&n ......
¿´¿´ÒÔÏÂSQLÓï¾ä£º
select row_number() over(partition by xs.xsbh, xs.kch order by coalesce(xs.bkxnxqh, xs.xnxqh) desc) rn
row_number()£º´ú±íÁÐ
partition by ´ú±í°´Ê²Ã´½øÐзÖ×é
order by¶Ôÿһ×éÐÅÏ¢½øÐÐÅÅÐò
coalesce()ÊÇÌæ»»µÄÒâ˼ ÀýÈ磺ÉÏÃæµÄSQLÓï¾äµÄÒâ˼ÊÇ£¬Èç¹ûbkxnxqhΪ¿Õ£¬ÄÇô¾ÍÈ¥xnx ......
ǰһ¶Îʱ¼äÔÚά»¤Ò»¸öÀÏÏîÄ¿µÄʱºò·¢ÏÖ£¬ÔÚÖ´ÐÐÒ»¸ö½Ï´óµÄ´æ´¢¹ý³Ìʱ£¬×ÜÊDZ¨“³£¹æÍøÂç´íÎó£¬Çë¼ì²éÄúµÄÍøÂçÎĵµ”¡£ÔÚºóÐøµÄά»¤¼ì²éÖз¢ÏÖ£¬ÊÇÊÂÎﳬʱµ¼ÖÂÖ´ÐÐÖÐÖ¹µÄ¡£
ÏÂÃæÊǵ÷Õû¹ý³Ì£º
Ò»¡¢°ÑSQL SERVERµÄµÈ´ýÏìӦʱ¼ ......