oracleÌøÔ¾Ë÷ÒýµÄÓ¦Óó¡ºÏ
Ë÷ÒýÌøÔ¾Ê½É¨Ãè(index skip scan)ÊÇOracle9iµÄÒ»¸öеÄÖ´ÐÐÌØÐÔ£¬ÓÈÆäÊÊÓÃÓÚʹÓÃÁ¬½ÓË÷ÒýºÍ·ÃÎʶàÖµË÷ÒýµÄOracle²éѯ¡£
Ë÷ÒýÌøÔ¾Ê½É¨Ãè(index skip scan)ÊÇOracle9iµÄÒ»¸öеÄÖ´ÐÐÌØÐÔ£¬ÓÈÆäÊÊÓÃÓÚʹÓÃÁ¬½ÓË÷ÒýºÍ·ÃÎʶàÖµË÷ÒýµÄOracle²éѯ¡£ÈÃÎÒÃÇ¿´ÒÔϵķ¶Àý¡£Çë×¢Òâµ½ÒÔÏ´úÂë°üº¬×ÅÁ¬½ÓË÷Òý£º
create indexsex_emp_idonemp (sex, emp_id);
ÔÚOracle9i°æ±¾Ö®Ç°£¬µ±SQL²éѯÖаüº¬ÐÔ±ðºÍemp_idʱ£¬»òÕß²éѯָ¶¨ÐÔ±ðÐеÄʱºò²Å¿ÉÒÔʹÓÃÕâÒ»Ë÷Òý¡£ÏÂÃæµÄ²éѯ²»Äܹ»Ê¹ÓÃÁ¬½ÓË÷Òý£º
selectemp_idfromempwhereemp_id = 123;
Oracle9iµÄË÷ÒýÌøÔ¾Ê½É¨ÃèÖ´ÐйæÔòÔÊÐíʹÓÃÁ¬½ÓË÷Òý£¬¼´Ê¹SQL²éѯÖв»Ö¸¶¨ÐԱ𡣠ÕâÒ»ÌØÐÔʹµÃÎÞÐèÔÚemp_idÐÐÖÐÌṩµÚ¶þ¸öË÷Òý¡£Oracle³ÐÈÏË÷ÒýÌøÔ¾Ê½É¨ÃèûÓÐÖ±½ÓË÷Òý²éѯËٶȿ죬µ«¿ÉÒÔÕâÑù˵£¬Ïà±ÈÓÚÕû¸ö±íɨÃè (table scan)£¬Ë÷ÒýÌøÔ¾Ê½É¨ÃèµÄËÙ¶ÈÒª¿ìµÃ¶à¡£
µ±OracleûÓÐÖ¸Ã÷Ë÷ÒýÌøÔ¾Ê½É¨ÃèµÄÄÚ²¿ÄÚÈÝʱ£¬ÎÒÃÇ¿ÉÒÔ´ÓËüµÄÖ´ÐйæÔòÖÐÅжϳö£¬OracleÔÚÄÚ²¿ÉÏÉú³ÉÁ˶à¸ö²éѯ£¬ÕâÑù¾ÍÂú×ã´øÓжà¸ö×Ó²éѯµÄ²éѯ:
SELECT STATEMENT Optimizer=CHOOSE (Cost=6 Card=1 Bytes=5)0 SORT (AGGREGATE)1 INDEX (SKIP SCAN) OF 'SEX_EMP_ID' (NON-UNIQUE)
ÔÚÄÚ²¿ÀOracleÉú³ÉÁËÁ½¸ö²éѯ£¬²¢Á¬½Ó½á¹ûµÄROWID±í¡£
selectemp_name from emp_where sex = 'F' and emp_id = 123
UNION
select emp_name from emp_where sex = 'M' and emp_id = 123;
ʹÓÃË÷ÒýÌøÔ¾Ê½É¨ÃèµÄÄÚº¾Í±äµÃºÜÇåÎú¡£
¶ÔÓÚ¸ß˳Ðò¼ü(high order key)ÖеĶÀÌØÖµÊýÄ¿£¬OracleµÄË÷ÒýÌøÔ¾Ê½É¨ÃèÐÔÄܽ«»á½µµÍ¡£Èç¹ûÖ÷ÁÐÓÐ50¸öÖµ£¬OracleÒª·¢³ö50Ìõ²éѯ²ÅÄÜÕһؽá¹û¡£ Ë÷ÒýÌøÔ¾Ê½É¨ÃèÖ»ÊÊÓÃÓÚÓ²Å̿ռäºÍ´æ´¢¿Õ¼äÏ൱½ôȱµÄÇé¿ö¡££¨ÔðÈαà¼:ÍõÈð£©
ÆÀÊö£º
¸ù¾ÝÉÏÃæÎÄÕÂÖеĽá¹û£¬Êµ¼ÊÉÏ£¬ÌøÔ¾Ë÷ÒýµÄÓ¦Óó¡ËùÊÇÓÐÏ޵ģ¬Èç¹ûË÷ÒýµÄµÚÒ»¸ö×ֶΣ¨Ö÷ÁУ©µÄÊý¾ÝÖÖÀàºÜ¶àµÄ»°£¬ÌøÔ¾Ë÷Òý¶ÔÌá¸ßÐÔÄÜÊǺÜÓÐÏ޵ģ¬ÉõÖÁÊÇûÓÐÓô¦µÄ£¬ÒòΪʵ¼ÊÉÏoracleÄÚ²¿ÊÇÉú³ÉÁ˶à¸ö²éѯÀ´Íê³ÉÕâÏ×÷µÄ¡£
ËùÒÔÔÚʵ¼ÊÓ¦Óùý³ÌÖУ¬ÕýÈ·µÄÀí½âÌøÔ¾Ë÷ÒýµÄÔÀí£¬·ÖÎöÖ÷ÁÐÊý¾ÝµÄÇé¿ö£¬ÊÇÓúÃÌøÔ¾Ë÷ÒýµÄÒ»¸öǰÌá
±¾ÎÄÀ´×ÔCSDN²©¿Í£¬×ªÔØÇë±êÃ÷³ö´¦£ºhttp://blog.csdn.net/towerjt/archi
Ïà¹ØÎĵµ£º
1.´´½¨ÁÙʱ±í¿Õ¼ä
CREATE TEMPORARY TABLESPACE Test_temp
TEMPFILE 'E:\Test\TEST_temp.dbf'
SIZE 32M
AUTOEXTEND ON
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;
2.´´½¨Óû§±í¿Õ¼ä
create tablespace TEST
datafile 'E:\TEST\TEST.dbf'
size 100M
autoextend on maxsize   ......
Éí¾ÓOracle ¹Ø¼üÓ¦ÓõĿª·¢ºÍά»¤ÍŶӣ¬ÄúÒ»¶¨ÉîÖªÑз¢¹ÜÀíµÄÖØÒª¡£ÈçºÎÀûÓÃרҵ»¯Oracle ÍŶӿª·¢½â¾ö·½°¸£¬ÊµÏÖ¸ßЧµÄÍŶӿª·¢¡¢×î¼ÑÓ¦ÓÃÐÔÄܺÍÀíÏëµÄ½»¸¶ÖÊÁ¿£¬ÊÇQuest Software±¾´ÎÓëÄú̽ÌֵĺËÐÄ»°Ìâ¡£
´ÓÊý¾Ý¿âµÄÉè¼Æ¡¢½¨Ä£¡¢±àÂ룬µ½Ó ......
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;
......
alter table t_att_over_haul_safe_pres add c clob;
update t_att_over_haul_safe_pres set c=prt_precautions;
alter table t_att_over_haul_safe_p ......