ORACLE·ÖÎöº¯ÊýµÄÓ÷¨
¿ª´°º¯ÊýµÄµÄÀí½â£º
¿ª´°º¯ÊýÖ¸¶¨ÁË·ÖÎöº¯Êý¹¤×÷µÄÊý¾Ý´°¿Ú´óС£¬Õâ¸öÊý¾Ý´°¿Ú´óС¿ÉÄÜ»áËæ×ÅÐеı仯¶ø±ä»¯£¬¾ÙÀýÈçÏ£º
over£¨order by salary£© °´ÕÕsalaryÅÅÐò½øÐÐÀۼƣ¬order byÊǸöĬÈϵĿª´°º¯Êý
over£¨partition by deptno£©°´ÕÕ²¿ÃÅ·ÖÇø
over£¨order by salary range between 50 preceding and 150 following£©
ÿÐжÔÓ¦µÄÊý¾Ý´°¿ÚÊÇ֮ǰÐзù¶ÈÖµ²»³¬¹ý50£¬Ö®ºóÐзù¶ÈÖµ²»³¬¹ý150
over£¨order by salary rows between 50 preceding and 150 following£©
ÿÐжÔÓ¦µÄÊý¾Ý´°¿ÚÊÇ֮ǰ50ÐУ¬Ö®ºó150ÐÐ
over£¨order by salary rows between unbounded preceding and unbounded following£©
ÿÐжÔÓ¦µÄÊý¾Ý´°¿ÚÊÇ´ÓµÚÒ»Ðе½×îºóÒ»ÐУ¬µÈЧ£º
over£¨order by salary range between unbounded preceding and unbounded following£©
Ö÷Òª²Î¿¼×ÊÁÏ£º¡¶expert one-on-one¡· Tom Kyte ¡¶Oracle9i SQL Reference¡·µÚ6ÕÂ
AVG
¹¦ÄÜÃèÊö£ºÓÃÓÚ¼ÆËãÒ»¸ö×éºÍÊý¾Ý´°¿ÚÄÚ±í´ïʽµÄƽ¾ùÖµ¡£
SAMPLE£ºÏÂÃæµÄÀý×ÓÖÐÁÐc_mavg¼ÆËãÔ±¹¤±íÖÐÿ¸öÔ±¹¤µÄƽ¾ùнˮ±¨¸æ£¬¸Ãƽ¾ùÖµÓɵ±Ç°Ô±¹¤ºÍÓëÖ®¾ßÓÐÏàͬ¾ÀíµÄǰһ¸öºÍºóÒ»¸öÈýÕߵį½¾ùÊýµÃÀ´£»
SELECT manager_id, last_name, hire_date, salary,
AVG(salary) OVER (PARTITION BY manager_id ORDER BY hire_date
ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS c_mavg
from employees;
MANAGER
Ïà¹ØÎĵµ£º
2009Äê12ÔÂ15ÈÕ5:25:47
Äã²»µÃ²»³ÐÈÏË÷ÒýµÄÇÉÃî×÷ÓÃ,ÓÉÓÚÓбíµÄÖ÷¼üΨһ±êʶ,ʹµÃÎÒÃÇÔÚ¼ìË÷±íÖÐÊý¾Ýʱ,ËÙ¶ÈÉÏ´øÀ´µÄÌáÉý,ÊÇÏÔ¶øÒ×¼ûµÄ.±ÈÆðÎÒÃÇûÓÐË÷ÒýÏàͬÁ¿µÄ±í,´øÓÐË÷ÒýµÄ±íÃ÷ÏÔÓÐËÙ¶ÈÉϵÄÌáÉý.[¶ÁÕß¿ÉÒÔµ¼ÈëÒ»ÕÅ300~400ÍòµÄÊý¾Ý¼ì²âÒ»ÏÂ.]
Ë÷ÒýÊDZíµÄÒ»¸ö¸ÅÄ·Ö,ÓÃÀ´Ìá¸ß¼ìË÷Êý¾ÝµÄÐ ......
»ù´¡±í(Driving Table)ÊÇÖ¸±»×îÏÈ·ÃÎʵıí(ͨ³£ÒÔÈ«±íɨÃèµÄ·½Ê½±»·ÃÎÊ). ¸ù¾ÝÓÅ»¯Æ÷µÄ²»Í¬, SQLÓï¾äÖлù´¡±íµÄÑ¡ÔñÊDz»Ò»ÑùµÄ.
Èç¹ûÄãʹÓõÄÊÇCBO (COST BASED OPTIMIZER),ÓÅ»¯Æ÷»á¼ì²éSQLÓï¾äÖеÄÿ¸ö±íµÄÎïÀí´óС,Ë÷ÒýµÄ״̬,È»ºóÑ¡Óû¨·Ñ×îµÍµÄÖ´Ðз¾¶.
Èç¹ûÄãÓÃRBO (RULE BASED OPTIMIZER) , ²¢ÇÒËùÓеÄÁ¬½ÓÌõ¼þ¶ ......
ÔÚsqlÓï¾äÖÐÉæ¼°µ½Ê±¼äÀàÐÍʱ ÈôÖ»ÏëÒªÈÕÆÚ to_date('2007-7-8','yyyy-mm-dd')
ÔÚC#ÖÐÓÐdatetimeÀàÐÍ£¬´úÂë˵Ã÷Ò»ÇÐ
DateTime dt = System.DateTime.Now;
string lsh;
lsh=string.Format("{0:yyyyMMddHHmmss}", dt);
DateTime dt = DateTime.Now;
Label1.Text = dt.To ......
What circumstances we use ALL_ROWS and what circumstances we use FIRST_ROWS optimizer mode? This article is written in oracle9i.
First_rows attempts to optimize the query to get the very first row back to the client as fast as possible. This is good for an interactive client server environment wher ......