OracleÖ§³ÅµÄasp.net2.0Ó¦ÓÃÖÐ×ÔÖ÷ʵÏÖÊý¾ÝÒÀÀµ»º´æ
ÏîÄ¿ÖÐÓÐһЩ±¨±í£¬±¾ÉíËٶȾͲ»Ì«¿ì£¬Óöµ½Êý¾ÝÁ¿´óµÄÇé¿ö£¬¸üÊÇÈÃÈË×¥¿ñ£¬Óû§Ò²Ìá³öÁ˱¨±íËÙ¶ÈÂýµÄÎÊÌ⣬ÓÚÊÇÏë×ÅÈçºÎʵÏÖ±¨±íµÄÊý¾ÝÒÀÀµ»º´æ£¬¼´½«±¨±íÊý¾Ý»º´æ£¬µ±Êý¾Ý·¢Éú¸Ä±äʱ£¬ÔÙÖØÐ»ñÈ¡Êý¾Ý¡£
×î¼òµ¥µÄ·½·¨£¬ÊÇÔÚÏÔʾ±¨±íµÄaspxÒ³ÃæµÚÒ»ÐмÓÉÏÐÎÈç<%@ OutputCache Duration="600" VaryByParam="some_param" %>µÄÒ»¾ä£¬Ö±½ÓÈÃÒ³Ãæ»º´æ10·ÖÖÓ¡£µ«ÊÇÕâÖÖ°ì·¨ÎÞ·¨¼à²âÊý¾ÝµÄ¸Ä±ä£¬ÎÞ·¨Âú×㱨±íµÄʱЧÐÔ¡£
ASP.NET2.0ÌṩÁË»º´æÒÀÀµ¼¼Êõ£¬¿ÉÒÔÈûº´æ¼àÊÓÎļþ¡¢Ä¿Â¼µÄ±ä»¯£¬´Ó¶ø¸üлº´æ¡£ÕâÖÖ¼¼ÊõÈôÊÇÓëSQL Server½áºÏʹÓã¬Ã²ËÆ»áºÜ·½±ã£¬¿ÉÊÇÎÒÃǵÄÏîÄ¿ÓõÄÊÇOracle£¬ËùÒÔÎÞ·¨¿¼ÂÇ¡£
´ËÍ⣬ASP.NET2.0Öл¹¿ÉÒÔ×Ô¼ºÉ趨ӦÓóÌÐòÊý¾Ý»º´æ£¬Ò²¾ÍÊǰÑÊý¾Ý»º´æÆðÀ´£¬²»ÓÃÿ´Î¶¼²éѯÊý¾Ý¿â¡£
Ó¦ÓóÌÐòÊý¾Ý»º´æ¼¼Êõ£¬¿ÉÒÔÈÃÎҵı¨±íÒ³Ãæ²»ÓÃÿ´Î¶¼×öÊý¾Ý¿â²éѯ£¬´Ó¶øÌá¸ßЧÂÊ¡£ÔÚÉ趨ÕâÖÖ»º´æÊ±£¬¿ÉÒÔÖ¸¶¨¾ø¶Ô¹ýÆÚʱ¼ä¡¢Ïà¶Ô¹ýÆÚʱ¼ä£¬ÒÔ¼°»º´æ¸üеÄÒÀÀµÏî¡£
ÀíÏëµÄ״̬£¬Ó¦¸ÃÊǵ±Êý¾ÝÔÚ±ðµÄÒ³ÃæÓиüÐÂʱ£¬¾ÍÏë°ì·¨“֪ͨ”±¨±íÒ³Ãæ£¬ÈÃËüÖØÐÂ×öÊý¾Ý¿â²éѯ¡£¼ÈÈ»¿ÉÒÔÖ¸¶¨»º´æÒÀÀµÓÚÎļþ£¬ÄÇô¾Í¿ÉÒÔ¿¼ÂÇ£¬µ±Êý¾ÝÓб仯ʱ£¬¾Í¸üÐÂij¸öÎļþ£¬ÕâÑùÒÀÀµÓÚÕâ¸öÎļþµÄ»º´æ¾Í»áʧЧ£¬´Ó¶øÒý·¢´ÓÊý¾Ý¿âÖØÐ²éѯÊý¾ÝÁË¡£
ÓÐÁËÕâ¸ö˼·£¬ÊµÏÖÆðÀ´Ò²¾Í²»ÄÑÁË¡£
¾ßÌåÀ´Ëµ£¬ÎÒ×öµÄÕâ¸öϵͳÊǸöÈÎÎñÁ÷תµÄϵͳ£¬±¨±íÒ²ÊǶÔÈÎÎñµÄÊý¾Ýͳ¼Æ¡£
ÄÇô£¬ÎÒ¾ÍÔÚϵͳÖн¨Á¢Ò»¸öCacheĿ¼£¬×¨ÃÅ´æ·Å»º´æËùÒÀÀµµÄÎļþ¡£µ±Ð½¨Ò»¸öÈÎÎñʱ£¬¾ÍÒÔ¸ÃÈÎÎñµÄIDºÅΪÎļþÃû£¬Ð½¨Ò»¸öÀ©Õ¹ÃûΪ.cacheµÄÎļþ£¨µ±È»£¬Õâ¸öÀ©Õ¹ÃûÊÇÎÒ×Ô¶¨ÒåµÄ£¬ÈÎÒ⣩£¬È»ºóÏòÆäÖÐдÈ뵱ǰµÄϵͳʱ¼ä£¨µ±È»£¬Ð´Èëʲô¶¼ÐУ¬Ö»ÒªÊÇÄܸüÐÂÕâ¸öÎļþ£©¡£ÆäËüµÄÄܹ»¸Ä±äÈÎÎñÏà¹ØµÄÊý¾ÝµÄµØ·½£¬Ò²Í¬Ê±ÐÞ¸ÄÏàÓ¦»º´æÎļþµÄÄÚÈݼ´¿É¡£
½ÓÏÂÀ´£¬ÔÚ±¨±íÒ³Ãæ£¬ÓÃÀàËÆÒÔÏ´úÂëʵÏÖ»º´æ£º
DataTable dt = (DataTable)Cache["rptPingFen"+strTaskID + Session["userEntID"].ToString()];
if (dt == null)
{
dt = Reports.rptPingFen( strTaskID, Session["userEntID"].ToString() );
string strCacheFile = Server.MapPath( "~/Cache/" + strTaskID + ".cache" );
if (System.IO.File.Exists( strCacheFile ))
Cache.Insert( "rptPingFen" + strTaskID + Session["userEntID"
Ïà¹ØÎĵµ£º
DECODEº¯ÊýÏ൱ÓÚÒ»Ìõ¼þÓï¾ä(IF).Ëü½«ÊäÈëÊýÖµÓ뺯ÊýÖеIJÎÊýÁбíÏà±È½Ï£¬¸ù¾ÝÊäÈëÖµ·µ»ØÒ»¸ö¶ÔÓ¦Öµ¡£º¯ÊýµÄ²ÎÊýÁбíÊÇÓÉÈô¸ÉÊýÖµ¼°Æä¶ÔÓ¦½á¹ûÖµ×é³ÉµÄÈô¸ÉÐòżÐÎʽ¡£µ±È»£¬Èç¹ûδÄÜÓëÈκÎÒ»¸öʵ²ÎÐòżƥÅä³É¹¦£¬Ôòº¯ÊýÒ²ÓÐĬÈϵķµ»ØÖµ¡£Çø±ðÓÚSQLµÄÆäËüº¯Êý£¬DECODEº¯Êý»¹ÄÜʶ±ðºÍ²Ù×÷¿ÕÖµ.
Æä¾ßÌåµÄÓï·¨¸ñʽÈçÏ£º
DE ......
http://www.anysql.net/oracle/query_rewrite_01.html
Query Rewrite ÔÚÊý¾Ý²Ö¿âÊÇÊÇÒ»¸ö·Ç³£ÓÐÓõļ¼Êõ, TomÔÚ<<Effective Oracle by Design>>Ò»ÊéÖн«ÊµÌ廯ÊÓͼ(MView)³ÆÎªÊÇÊý¾Ý²Ö¿âµÄË÷Òý, ÕâÊÇÔÙÌùÇв»¹ýµÄÁË, ÔÚOLTPÖе±SELECTÓï¾äµÄËùÓеÄ×ֶζ¼ÔÚË÷ÒýÖÐʱ, Oracle¿ÉÒÔ²»´Ó±í¶ÁÊý¾Ý, ¶øÖ± ......
¿ÉÒÔ¿´µ½MVIEWÔÚQuery RewriteÖеÄÖØÒªÐÔ, ÒªÔÚʵ¼ÊÓ¦ÓÃÖÐʹÓÃ, ¾ÍµÃÖªµÀËüµÄºÜ¶à·½Ãæ, ÆäÖÐË¢ÐÂÊÇ×îÖ÷ÒªµÄ:
1, MVIEWÈÕÖ¾µÄ½¨Á¢
2, »ã×ÜÐ͵ÄMIVEWµÄË¢ÐÂ
3, JOINÀàÐ͵ÄMVIEWµÄË¢ÐÂ
4, ¸ü¸´ÔÓµÄMVIEWµÄË¢ÐÂ
5, ·ÖÇøÊ±µÄMVIEWµÄË¢ÐÂ
ÔÚÕâ¶ùÎÒÃÇÖ÷ÒªÌÖÂÛµÄÊÇÈçºÎʵÏÖFastË¢ÐÂ, ·ñÔòûÓжàÉ ......
Oracle ´´½¨ÐòÁУº
create sequence SEQ_Tablename_id
increment by 1 &nbs ......
// ½¨Á¢±í¿Õ¼ä£¨Ö¸¶¨Îļþ·¾¶£©¡£
create TABLESPACE EAS_D_sptcc0_STANDARD DATAFILE 'F:\oracledb\EAS_D_sptcc0_STANDARD.dbf' size 10000M EXTENT MANAGEMENT local;
// ɾ³ý±í¿Õ¼ä£¨Ö¸¶¨Îļþ·¾¶£©¡£
DROP TABLESPACE temp_data INCLUDING CONTENTS AND DATAFILES;
// ½¨Á¢ÁÙʱ±í¿Õ¼ä¡£
CREATE TEMPORARY TABLESPA ......