³£¼ûOracle HINTµÄÓ÷¨
[×ÊÁÏÀ´×ÔÓÚORACLEƵµÀ http://oracle.chinaitlab.com/induction/398193.html]
¡¡1. /*+ALL_ROWS*/
¡¡¡¡±íÃ÷¶ÔÓï¾ä¿éÑ¡Ôñ»ùÓÚ¿ªÏúµÄÓÅ»¯·½·¨,²¢»ñµÃ×î¼ÑÍÌÍÂÁ¿,ʹ×ÊÔ´ÏûºÄ×îС»¯.
¡¡¡¡ÀýÈç:
¡¡¡¡SELECT /*+ALL_ROWS*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT';
¡¡¡¡2. /*+FIRST_ROWS*/
¡¡¡¡±íÃ÷¶ÔÓï¾ä¿éÑ¡Ôñ»ùÓÚ¿ªÏúµÄÓÅ»¯·½·¨,²¢»ñµÃ×î¼ÑÏìӦʱ¼ä,ʹ×ÊÔ´ÏûºÄ×îС»¯.
¡¡¡¡ÀýÈç:
¡¡¡¡SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT';
¡¡¡¡3. /*+CHOOSE*/
¡¡¡¡±íÃ÷Èç¹ûÊý¾Ý×ÖµäÖÐÓзÃÎʱíµÄͳ¼ÆÐÅÏ¢,½«»ùÓÚ¿ªÏúµÄÓÅ»¯·½·¨,²¢»ñµÃ×î¼ÑµÄÍÌÍÂÁ¿;
¡¡¡¡±íÃ÷Èç¹ûÊý¾Ý×ÖµäÖÐûÓзÃÎʱíµÄͳ¼ÆÐÅÏ¢,½«»ùÓÚ¹æÔò¿ªÏúµÄÓÅ»¯·½·¨;
¡¡¡¡ÀýÈç:
¡¡¡¡SELECT /*+CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT';
¡¡¡¡4. /*+RULE*/
¡¡¡¡±íÃ÷¶ÔÓï¾ä¿éÑ¡Ôñ»ùÓÚ¹æÔòµÄÓÅ»¯·½·¨.
¡¡¡¡ÀýÈç:
¡¡¡¡SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT';
¡¡¡¡5. /*+FULL(TABLE)*/
¡¡¡¡±íÃ÷¶Ô±íÑ¡ÔñÈ«¾ÖɨÃèµÄ·½·¨.
¡¡¡¡ÀýÈç:
¡¡¡¡SELECT /*+FULL(A)*/ EMP_NO,EMP_NAM from BSEMPMS A WHERE EMP_NO='SCOTT';
¡¡¡¡6. /*+ROWID(TABLE)*/
¡¡¡¡ÌáʾÃ÷È·±íÃ÷¶ÔÖ¸¶¨±í¸ù¾ÝROWID½øÐзÃÎÊ.
¡¡¡¡ÀýÈç:
¡¡¡¡SELECT /*+ROWID(BSEMPMS)*/ * from BSEMPMS WHERE ROWID>='AAAAAAAAAAAAAA'
¡¡¡¡AND EMP_NO='SCOTT';
¡¡¡¡7. /*+CLUSTER(TABLE)*/
¡¡¡¡ÌáʾÃ÷È·±íÃ÷¶ÔÖ¸¶¨±íÑ¡Ôñ´ØÉ¨ÃèµÄ·ÃÎÊ·½·¨,ËüÖ»¶Ô´Ø¶ÔÏóÓÐЧ.
¡¡¡¡ÀýÈç:
¡¡¡¡SELECT /*+CLUSTER */ BSEMPMS.EMP_NO,DPT_NO from BSEMPMS,BSDPTMS
¡¡¡¡WHERE DPT_NO='TEC304' AND BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
¡¡¡¡8. /*+INDEX(TABLE INDEX_NAME)*/
¡¡¡¡±íÃ÷¶Ô±íÑ¡ÔñË÷ÒýµÄɨÃè·½·¨.
¡¡¡¡ÀýÈç:
¡¡¡¡SELECT /*+INDEX(BSEMPMS SEX_INDEX) USE SEX_INDEX BECAUSE THERE ARE FEWMALE BSEMPMS */ from BSEMPMS WHERE SEX='M';
¡¡¡¡9. /*+INDEX_ASC(TABLE INDEX_NAME)*/
¡¡¡¡±íÃ÷¶Ô±íÑ¡ÔñË÷ÒýÉýÐòµÄɨÃè·½·¨.
¡¡¡¡ÀýÈç:
¡¡¡¡SELECT /*+INDEX_ASC(BSEMPMS PK_BSEMPMS) */ from BSEMPMS WHERE DPT_NO='SCOTT';
¡¡¡¡10. /*+INDEX_COMBINE*/
¡¡¡¡ÎªÖ¸¶¨±íÑ¡Ôñλͼ·ÃÎÊ·¾,Èç¹ûINDEX_COMBINEÖÐûÓÐÌṩ×÷Ϊ²ÎÊýµÄË÷Òý,½«Ñ¡Ôñ³öλͼË÷ÒýµÄ²¼¶û×éºÏ·½Ê½.
¡¡¡¡ÀýÈç:
¡¡¡¡SE
Ïà¹ØÎĵµ£º
CREATE PUBLIC DATABASE LINK ASXT_LINK ;
CONNECT TO ASXT IDENTIFIED BY PASSWORD ;
USING '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.0.100)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = AAA)))'; ......
Ò»¡¢Ë÷ÒýÀàÐͼ°½á¹¹£º
oracleµÄË÷Òý·ÖΪ5ÖÖ:ΨһË÷Òý£¬×éºÏË÷Òý£¬·´Ïò¼üË÷Òý£¬Î»Í¼Ë÷Òý£¬»ùÓÚº¯ÊýµÄË÷Òý
Âß¼ÉÏ£º
Single column µ¥ÁÐË÷Òý
Concatenated ¶àÁÐË÷Òý
Unique ΨһË÷Òý
NonUnique ·ÇΨһË÷Òý
Function-basedº¯ÊýË÷Òý
Domain ÓòË÷Òý
ÎïÀíÉÏ£º
Partitioned ·ÖÇøË÷Òý
NonPartitioned ......
ORACLEÀïËøÓÐÒÔϼ¸ÖÖģʽ:
0£ºnone
1£ºnull ¿Õ
e.g. 1¼¶ËøÓУºSelect£¬ÓÐʱ»áÔÚv$locked_object³öÏÖ¡£
2£ºRow-S Ðй²Ïí(RS)£º¹²Ïí±íËø£¬sub share
e.g. 2¼¶ËøÓУºSelect for update,Lock For Update,Lock Row Share
  ......
create or replace procedure inserttestdata
(
v_count in number,
v_startuserid in varchar2,
v_returnval out number )
as
v_opertime   ......
ÊÓͼµÄ¸ÅÄî
ÊÓͼÊÇ»ùÓÚÒ»Õűí»ò¶àÕűí»òÁíÍâÒ»¸öÊÓͼµÄÂß¼±í¡£ÊÓͼ²»Í¬ÓÚ±í£¬ÊÓͼ±¾Éí²»°üº¬ÈκÎÊý¾Ý¡£±íÊÇʵ¼Ê¶ÀÁ¢´æÔÚµÄʵÌ壬ÊÇÓÃÓÚ´æ´¢Êý¾ÝµÄ»ù±¾½á¹¹¡£¶øÊÓͼֻÊÇÒ»ÖÖ¶¨Ò壬¶ÔÓ¦Ò»¸ö²éѯÓï¾ä¡£ÊÓͼµÄÊý¾Ý¶¼À´×ÔÓÚijЩ±í£¬ÕâЩ±í±»³ÆÎª»ù±í¡£Í¨¹ýÊÓͼÀ´²é¿´±í£¬¾ÍÏñÊÇ´Ó²»Í¬µÄ½Ç¶ÈÀ´¹Û²ìÒ»¸ö(»ò¶à¸ö)±í¡£
Ê ......