oracleº¯ÊýË÷ÒýС½á
º¯ÊýË÷ÒýµÄ¸ÅÄ
»ùÓÚº¯ÊýµÄË÷ÒýÒ²ÊÇ8iÒÔÀ´µÄвúÎËüÓÐË÷Òý¼ÆËãÁеÄÄÜÁ¦£¬ËüÒ×ÓÚʹÓò¢ÇÒÌṩ¼ÆËãºÃµÄÖµ£¬ÔÚ²»ÐÞ¸ÄÓ¦ÓóÌÐòµÄÂß¼ÉÏÌá¸ßÁ˲éѯÐÔÄÜ¡£Ê¹ÓûùÓÚº¯ÊýµÄË÷ÒýÓм¸¸öÏȾöÌõ¼þ£º
(1)
±ØÐëÓµÓÐQUERY REWRITE£¨±¾Ä£Ê½Ï£©»òGLOBAL QUERY REWRITE£¨ÆäËûģʽÏ£©È¨ÏÞ¡£
(2)
±ØÐëʹÓûùÓڳɱ¾µÄÓÅ»¯Æ÷£¬»ùÓÚ¹æÔòµÄÓÅ»¯Æ÷½«±»ºöÂÔ¡£
(3)
±ØÐëÉèÖÃÒÔÏÂÁ½¸öϵͳ²ÎÊý£º
QUERY_REWRITE_ENABLED=TRUE
QUERY_REWRITE_INTEGRITY=TRUSTED
¿ÉÒÔͨ¹ýalter system set,alter session setÔÚϵͳ¼¶»òÏ̼߳¶ÉèÖã¬Ò²¿ÉÒÔͨ¹ýÔÚinit.oraÌí¼ÓʵÏÖ¡£
ÕâÀï¾ÙÒ»¸ö»ùÓÚº¯ÊýµÄË÷ÒýµÄÀý×Ó£º
º¯ÊýË÷Òý½¨Á¢¼°Êý¾Ý×¼±¸£º
SQL> create index test.ind_fun on test.testindex(upper(a));
Ë÷ÒýÒÑ´´½¨¡£
SQL> insert into testindex values('a',2);
ÒÑ´´½¨ 1 ÐС£
SQL> commit;
Ìá½»Íê³É¡£
Ç¿ÖÆÊ¹ÓûùÓÚ¹æÔòµÄÓÅ»¯Æ÷£¬ËùÒÔ²»»áʹÓú¯ÊýË÷Òý£º
SQL> select /*+ RULE*/* from test.testindex where upper(a)='A';
A¡¡¡¡ B
-- ----------
a¡¡¡¡ 2
Execution Plan
----------------------------------------------------------
0¡¡¡¡SELECT STATEMENT Optimizer=HINT: RULE
1 0 TABLE ACCESS (FULL) OF 'TESTINDEX'
(ÓÅ»¯Æ÷Ñ¡ÔñÁËÈ«±íɨÃè)
--------------------------------------------------------------------
ʹÓú¯ÊýË÷Òý£º
SQL> select * from test.testindex where upper(a)='A';
A¡¡¡¡ B
-- ----------
a¡¡¡¡ 2
Execution Plan
----------------------------------------------------------
0¡¡¡¡SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=1 Bytes=5)
1 0 TABLE ACCESS (BY INDEX ROWID) OF 'TESTINDEX' (Cost=2 Card=1 Bytes=5)
2 1 INDEX (RANGE SCAN) OF 'IND_FUN' (NON-UNIQUE) (Cost=1 Card=1)
(ʹÓÃÁËind_funË÷Òý)
´Ë´¦ÓÐÒ»ÖÖ·½°¸£¬²»Ê¹Óú¯ÊýË÷Òý£¬Í¨¹ýsqlÉϵļ¼ÇÉÀ´Ê¹ÓÃÔÓÐÁÐÉϵÄË÷Òý¡£²»¹ýÎÒ¾õµÃ»¹²»È罨Á¢º¯ÊýË÷ÒýÀ´µÄ·½±ã¡£
Ïà¹ØÎĵµ£º
1¡¢ÊýÖµÐͳ£Óú¯Êý
¡¡
¡¡º¯Êý¡¡¡¡·µ»ØÖµ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÑùÀý¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÔʾ
ceil(n) ´óÓÚ»òµÈÓÚÊýÖµnµÄ×îСÕûÊý¡¡¡¡select ceil(10.6) from dual; 11
floor(n) СÓÚµÈÓÚÊýÖµnµÄ×î´óÕûÊý¡¡ select ceil(10.6) from dual; 10
mod(m,n) m³ýÒÔnµÄÓàÊý,Èôn=0,Ôò·µ»Øm select mod(7,5) from dual; 2
p ......
1.Ñ¡ÓÃÊʺϵÄOracleÓÅ»¯Æ÷
OracleµÄÓÅ»¯Æ÷¹²ÓÐ3ÖÖ£º
a.RULE(»ùÓÚ¹æÔò)
b.COST(»ùÓڳɱ¾)
c.CHOOSE(Ñ¡ÔñÐÔ)
ÉèÖÃȱʡµÄÓÅ»¯Æ÷£¬¿ÉÒÔͨ¹ý¶Ôinit.oraÎļþÖÐOPTIMIZER_MODE²ÎÊýµÄ
¸÷ÖÖÉùÃ÷£¬ÈçRULE¡¢COST¡¢CHOOSE¡¢ALL_ROWS¡¢FIRST_ROWS¡£Ä㵱ȻҲÔÚSQL¾ä¼¶»òÊǻỰ(session)¼¶¶ÔÆä½øÐи²
¸Ç¡£
ΪÁËʹÓûùÓڳɱ¾µÄÓÅ»¯Æ ......
ºÎΪLOB£¿
lobΪoracleÊý¾Ý¿âµÄÒ»¸ö´ó¶ÔÏóÊý¾ÝÀàÐÍ,¿ÉÒÔ´æ´¢³¬¹ý4000bytesµÄ×Ö·û´®£¬¶þ½øÖÆÊý¾Ý£¬OSÎļþµÈ´ó¶ÔÏóÐÅÏ¢.×î´ó¿É´æ´¢µÄÈÝÁ¿¸ùoracleµÄ°æ±¾ºÍoracle ¿é´óСÓйØ.
ÓÐÄǼ¸Öֿɹ©Ñ¡ÔñµÄLOBÀàÐÍ?
ĿǰORACLEÌṩÁËCLOB£¬NCLOB£¬BLOB£¬BFILE¹²ËÄÖÖLOBÀàÐÍ,CLOB,NLOBΪ´ó×Ö·û´®ÀàÐÍ,NLOBΪ¶àÓïÑÔ¼¯×Ö·ûÀàÐÍ,ÀàËÆÓÚNV ......
Oracle»¥»»×ܽá
1. ¶àÐл»³ÉÒ»ÐÐ
col1 col2 col1 col2
a 1
a 2 ת»»ºó ......
LogMinerÌṩÁËÒ»¸ö´¦ÀíÖØ×öÈÕÖ¾Îļþ²¢½«ÆäÄÚÈÝ·Òë³É´ú±í¶ÔÊý¾Ý¿âµÄÂß¼²Ù×÷µÄSQLÓï¾äµÄ¹ý³Ì¡£LogMinerÔËÐÐÔÚOracle°æ±¾8.1»òÕ߸ü¸ß°æ±¾ÖС£
Ò»£¬ÈçºÎʹÓÃLogminer:
ÏÈÒª°²×°logminerµÄÁ½¸ö°ü£»ÒÔSYSÓû§ÔËÐÐÏÂÃæÁ½¸ö½Å±¾,ÆäÖеÚÒ»¸ö½Å±¾dbmslm.sqlÓÃÀ´´´½¨DBMS_LOGMNR°ü£¬¸Ã°üÓÃÀ´·Ö ......