OracleË÷ÒýʹÓùæÔò
Ê×ÏÈ£¬ÎÒÃÇҪȷ¶¨Êý¾Ý¿âÔËÐÐÔÚºÎÖÖÓÅ»¯Ä£Ê½Ï£¬ÏàÓ¦µÄ²ÎÊýÊÇ£ºoptimizer_mode¡£¿ÉÔÚsvrmgrlÖÐÔËÐГshow parameter optimizer_mode"À´²é¿´¡£ORACLE V7ÒÔÀ´È±Ê¡µÄÉèÖÃÓ¦ÊÇ"choose"£¬¼´Èç¹û¶ÔÒÑ·ÖÎöµÄ±í²éѯµÄ»°Ñ¡ÔñCBO£¬·ñÔòÑ¡ÔñRBO¡£Èç¹û¸Ã²ÎÊýÉèΪ“rule”£¬Ôò²»ÂÛ±íÊÇ·ñ·ÖÎö¹ý£¬Ò»¸ÅÑ¡ÓÃRBO£¬³ý·ÇÔÚÓï¾äÖÐÓÃhintÇ¿ÖÆ¡£
¡¡¡¡Æä´Î£¬¼ì²é±»Ë÷ÒýµÄÁлò×éºÏË÷ÒýµÄÊ×ÁÐÊÇ·ñ³öÏÖÔÚPL/SQLÓï¾äµÄWHERE×Ó¾äÖУ¬ÕâÊǓִÐмƻ®”ÄÜÓõ½Ïà¹ØË÷ÒýµÄ±ØÒªÌõ¼þ¡£
¡¡¡¡µÚÈý£¬¿´²ÉÓÃÁËÄÄÖÖÀàÐ͵ÄÁ¬½Ó·½Ê½¡£ORACLEµÄ¹²ÓÐSort Merge Join£¨SMJ£©¡¢Hash Join£¨HJ£©ºÍNested Loop Join£¨NL£©¡£ÔÚÁ½ÕűíÁ¬½Ó£¬ÇÒÄÚ±íµÄÄ¿±êÁÐÉϽ¨ÓÐË÷Òýʱ£¬Ö»ÓÐNested Loop²ÅÄÜÓÐЧµØÀûÓõ½¸ÃË÷Òý¡£SMJ¼´Ê¹Ïà¹ØÁÐÉϽ¨ÓÐË÷Òý£¬×î¶àÖ»ÄÜÒòË÷ÒýµÄ´æÔÚ£¬±ÜÃâÊý¾ÝÅÅÐò¹ý³Ì¡£HJÓÉÓÚÐë×öHASHÔËË㣬Ë÷ÒýµÄ´æÔÚ¶ÔÊý¾Ý²éѯËٶȼ¸ºõûÓÐÓ°Ïì¡£
¡¡¡¡µÚËÄ£¬¿´Á¬½Ó˳ÐòÊÇ·ñÔÊÐíʹÓÃÏà¹ØË÷Òý¡£¼ÙÉè±íempµÄdeptnoÁÐÉÏÓÐË÷Òý£¬±ídeptµÄÁÐdeptnoÉÏÎÞË÷Òý£¬WHEREÓï¾äÓÐemp.deptno=dept.deptnoÌõ¼þ¡£ÔÚ×öNLÁ¬½Óʱ£¬emp×öΪÍâ±í£¬Ïȱ»·ÃÎÊ£¬ÓÉÓÚÁ¬½Ó»úÖÆÔÒò£¬Íâ±íµÄÊý¾Ý·ÃÎÊ·½Ê½ÊÇÈ«±íɨÃ裬emp.deptnoÉϵÄË÷ÒýÏÔÈ»ÊÇÓò»ÉÏ£¬×î¶àÔÚÆäÉÏ×öË÷ÒýȫɨÃè»òË÷Òý¿ìËÙȫɨÃè¡£
¡¡¡¡µÚÎ壬ÊÇ·ñÓõ½ÏµÍ³Êý¾Ý×Öµä±í»òÊÓͼ¡£ÓÉÓÚϵͳÊý¾Ý×Öµä±í¶¼Î´±»·ÖÎö¹ý£¬¿ÉÄܵ¼Ö¼«²îµÄ“Ö´Ðмƻ®”¡£µ«ÊDz»ÒªÉÃ×Ô¶ÔÊý¾Ý×Öµä±í×ö·ÖÎö£¬·ñÔò¿ÉÄܵ¼ÖÂËÀËø£¬»òϵͳÐÔÄÜϽµ¡£
¡¡¡¡µÚÁù£¬Ë÷ÒýÁÐÊÇ·ñº¯ÊýµÄ²ÎÊý¡£ÈçÊÇ£¬Ë÷ÒýÔÚ²éѯʱÓò»ÉÏ¡£
¡¡¡¡µÚÆß£¬ÊÇ·ñ´æÔÚDZÔÚµÄÊý¾ÝÀàÐÍת»»¡£È罫×Ö·ûÐÍÊý¾ÝÓëÊýÖµÐÍÊý¾Ý±È½Ï£¬ORACLE»á×Ô¶¯½«×Ö·ûÐÍÓÃto_number()º¯Êý½øÐÐת»»£¬´Ó¶øµ¼ÖµÚÁùÖÖÏÖÏóµÄ·¢Éú¡£
¡¡¡¡µÚ°Ë£¬ÊÇ·ñΪ±íºÍÏà¹ØµÄË÷ÒýËѼ¯×ã¹»µÄͳ¼ÆÊý¾Ý¡£¶ÔÊý¾Ý¾³£ÓÐÔö¡¢É¾¡¢¸ÄµÄ±í×îºÃ¶¨ÆÚ¶Ô±íºÍË÷Òý½øÐзÖÎö£¬¿ÉÓÃSQLÓï¾ä“analyze table xxxx compute statistics for all indexes;"¡£ORACLEÕÆÎÕÁ˳ä·Ö·´Ó³Êµ¼ÊµÄͳ¼ÆÊý¾Ý£¬²ÅÓпÉÄÜ×ö³öÕýÈ·µÄÑ¡Ôñ¡£
¡¡¡¡µÚ¾Å£¬Ë÷ÒýÁеÄÑ¡ÔñÐÔ²»¸ß¡£
¡¡¡¡ÎÒÃǼÙÉèµäÐÍÇé¿ö£¬Óбíemp£¬¹²ÓÐÒ»°ÙÍòÐÐÊý¾Ý£¬µ«ÆäÖеÄemp.deptnoÁУ¬Êý¾ÝÖ»ÓÐ4ÖÖ²»Í¬µÄÖµ£¬Èç10¡¢20¡¢30¡¢40¡£ËäÈ»empÊý¾ÝÐÐÓкܶ࣬ORACLEȱʡÈ϶¨±íÖÐÁеÄÖµÊÇÔÚËùÓÐÊý¾ÝÐоùÔÈ·Ö²¼µÄ£¬Ò²¾ÍÊÇ˵ÿÖÖdeptnoÖµ¸÷ÓÐ25ÍòÊý¾ÝÐÐÓëÖ®¶ÔÓ¦¡£¼ÙÉèSQLËÑË÷Ìõ¼þDEPTNO=10£¬ÀûÓÃdeptnoÁÐÉϵÄË÷Òý½øÐÐÊ
Ïà¹ØÎĵµ£º
oracle ÈÕÆÚº¯Êý
ÔÚoracleÊý¾Ý¿âµÄ¿ª·¢ÖУ¬³£ÒòΪʱ¼äµÄÎÊÌâ´ó·ÑÖÜÕ£¬ËùÒÔÌØµØ½«ORACLEÊý¾ÝµÄÈÕÆÚº¯ÊýÊÕ²ØÖ´ˡ£Ä˹©
ËûÈÕËù²éÒ²¡£
add_months(d,n) ÈÕÆÚd¼Ón¸öÔÂ
last_day(d) °üº¬dµÄÔÂ?µÄ×îºóÒ»ÌìµÄÈÕÆÚ
new_time(d,a,b) a?ÇøµÄÈÕÆÚºÍ??dÔÚb?ÇøµÄÈÕÆÚºÍ??
next_day(d,day) ±È ......
ORACLEÖÐÊý¾Ý×ÖµäÊÓͼ·ÖΪ3´óÀà, ÓÃÇ°×ºÇø±ð£¬·Ö±ðΪ£ºUSER£¬ALL ºÍ DBA£¬Ðí¶àÊý¾Ý×ÖµäÊÓͼ°üº¬ÏàËÆµÄÐÅÏ¢¡£
USER_*:ÓйØÓû§ËùÓµÓеĶÔÏóÐÅÏ¢£¬¼´Óû§×Ô¼º´´½¨µÄ¶ÔÏóÐÅÏ¢
ALL_*£ºÓйØÓû§¿ÉÒÔ·ÃÎʵĶÔÏóµÄÐÅÏ¢£¬¼´Óû§×Ô¼º´´½¨µÄ¶ÔÏóµÄÐÅÏ¢¼ÓÉÏÆäËûÓû§´´½¨µÄ¶ÔÏ󵫸ÃÓû§ÓÐȨ·ÃÎʵÄÐÅÏ¢
DBA_* ......
/*sum()over()*/
--ĬÈϼÆËãËùÓÐÐеĺϼÆ
select t.empno,t.ename,t.sal,t.deptno,sum(t.sal)over()
from scott.emp t;
--partition by·Ö×éºÏ¼Æ
select t.empno,t.ename,t.sal,t.deptno,
sum(t.sal)over(partition by t.deptno)
from scott.emp t
order by t.deptno,t.sal;
......
1. ´´½¨±í¿Õ¼äʾÀýÈçÏÂ
CREATE TABLESPACE "SAMPLE"
LOGGING
DATAFILE 'D:\ORACLE\ORADATA\ORA92\LUNTAN.ora' SIZE 5M
REUSE AUTOEXTEND
ON NEXT 51200K MAXSIZE 3900M
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
ÉÏÃæ ......