oracle hintÖÐordered ºÍleadingÔÀíºÜºÃµÄÌû×Ó
ÎÊÌ⣺Çë½ÌHINTд·¨
ÎÒÓÐÒ»¸öSQLÌí¼ÓÈçÏÂhint,Ä¿µÄÊÇÖ¸¶¨hash_join·½Ê½¡£
select /*+ordered use_hash(a,b,c,d) */ *
from a,b,c,d
Where ...
ÆäÖÐ,
aÖ»ÓëbÓйØÁª¹ØÏµ£¬bÖ»ÓëcÓйØÁª¹ØÏµ£¬bÖ»ÓëcÓйØÁª¹ØÏµ,cÖ»ÓëdÓйØÁª¹ØÏµ£¬
ÊýÁ¿¼¶£ºa:1000Ìõ, b:100 ÍòÌõ£¬ c:800ÍòÌõ £¬ d£º100ÍòÌõ
Ö´Ðмƻ®Îª£º
Hash Join
---Hash Join
----- Hash Join
------ a
----- b
----- c
---d
¿¼Âǵ½d±í±È½ÏС£¬ÎÒÄܲ»ÄÜ×öµ½½«d±í×÷ΪÇý¶¯±í¡¢¶øa,b,c¹ØÁªÖ®ºóµÄ½á¹û×÷ΪprobÍâ±íÄØ£¬
ͨ¹ýOrderedºÃÏñÊÇûÓа취¿ØÖÆÕâÑù£¬¼ÓÁ˾ÍÖ»ÄÜÊÇa×÷ΪÇý¶¯±í×°ÔØÄڴ棬b×÷Ϊprob±íÓëÖ®¹ØÁª£¬
Ö®ºóµÄ½á¹ûÔÙ×÷ΪÇý¶¯±í£¬ÒÔ´ËÀàÍÆ¡£
ÓÃLeading¿ÉÒÔÂð£¿Çë¸ø³öÓï·¨£¬Ð»Ð»¡£
½â´ð£º
oracle 10gÖÐ
hash_join¿ÉÒÔͨ¹ýno_swap_join_inputs/swap_join_inputsÀ´Ç¿ÖÆ¿ØÖÆbuild±í£¬ÅäºÏleading»òÕßordered¿ÉÒÔ¿ØÖƶà±í֮ǰµÄÁ¬½Ó˳Ðò¡£
±ÈÈçt1,t2,t3,t4¹²4Õűí×öhash_join
¿ÉÒÔͨ¹ýordered+no_swap_join_inputs/swap_join_inputsÀ´ÊµÏÖ¡£
±ÈÈç
Èç¹ûÏëʵÏÖ
( T3 hash-join (T1 hash-join T2)) hash-join T4
t1×÷Ϊbuild±íºÍT2×öhash_join£¬È»ºót3×÷Ϊbuild±íºÍt1,t2µÄ½á¹û¼¯×÷hash_join,ÔÚ°Ñt3,t1,t2µÄ½á¹û¼¯×÷build±íºÍt4×öhash_join
ͨ¹ýsql¿ÉÒÔдΪ
MYDB@MYDB10G >select
2 /*+
3 ordered
4 use_hash(t2)
5 use_hash(t3)
6 swap_join_inputs(t3)
7 use_hash(t4)
8 no_swap_join_inputs(t4)
9 */
10 * from t1,t2,t3,t4
11 where t1.object_id=t2.object_id
12 and t2.object_name=t3.object_name
13 and t3.owner=t4.owner
14 and t4.owner='MYDB'
15 /
ÒÑÓÃʱ¼ä: 00: 00: 00.07
Ö´Ðмƻ®
------------------
Ïà¹ØÎĵµ£º
1¡£web.config ----appSettings--<add key="LimsConnection" value="data source=yzlims;user id=lims;password = lims"/>
2. c#´úÂëÖÐ
using System.Data.OracleClient;
public DataTable GetLimsTimeInSpace(string S_SAMPLE_NAME, string S_SAMPLING_P_N,Date ......
Temporary TablesÁÙʱ±í
1¼ò½é
ORACLEÊý¾Ý¿â³ýÁË¿ÉÒÔ±£´æÓÀ¾Ã±íÍ⣬»¹¿ÉÒÔ½¨Á¢ÁÙʱ±ítemporary tables¡£ÕâЩÁÙʱ±íÓÃÀ´±£´æÒ»¸ö»á»°SESSIONµÄÊý¾Ý£¬
»òÕß±£´æÔÚÒ»¸öÊÂÎñÖÐÐèÒªµÄÊý¾Ý¡£µ±»á»°Í˳ö»òÕßÓû§Ìá½»commitºÍ»Ø¹örollbackÊÂÎñµÄʱºò£¬ÁÙʱ±íµÄÊý¾Ý×Ô¶¯Çå¿Õ£¬
µ«ÊÇÁÙʱ± ......
×Ô¶¨Ò庯Êý
--×Ô¶¨Ò庯Êý
CREATE OR REPLACE FUNCTION fn_WFTemplateIDGet
(
TemplateCategoryID NUMBER,
OrganID NUMBER,
TemplateMode NUMBER
)
RETURN NUMBER
IS
......
Ò»¡¢²éѯij¸ö×Ö¶ÎÖØ¸´
select *
from User u
where u.user_name in (select u.user_name
&nbs ......