- 論壇徽章:
- 0
|
1.第一種寫法
select * from (
select rownum rm,a.* from (
select xs.xh,xs.xbm,cf.xm,cf.qfr,cf.qfrq from cfxxb cf,xsjbxxb xs
where cf.xh=xs.xh and cf.cflx='警告' and cf.xm like '%李%'
order by qfrq desc
) a) where rm between 1 and 10
2.第二種寫法
SELECT *
FROM(
SELECT ROWNUM RN,TA.*
FROM(
select xs.xh,xs.xbm,cf.xm,cf.qfr,cf.qfrq
from cfxxb cf,xsjbxxb xs where cf.xh=xs.xh and cf.cflx='警告' and cf.xm like '%李%'
order by qfrq desc
)TA WHERE ROWNUM 1
3.總結(jié)
第二種方法在大多數(shù)情況擁有較高的效率。分頁的目的就是控制輸出結(jié)果集大小,在上面的分頁查詢語句中,這種考慮主要體現(xiàn)在WHERE ROWNUM <= 20這句上。
選擇第11到20條記錄存在兩種方法,第二種方法正是在查詢的第二層通過ROWNUM <= 20來控制最大值,在查詢的最外層控制最小值。而第一種方法是去掉查詢第二層的WHERE ROWNUM <= 20語句,在查詢的最外層控制分頁的最小值和最大值。
數(shù)據(jù)庫管理員在優(yōu)化的時(shí)候,第二種情況下優(yōu)化效果更好。
本文來自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/21752/showart_2157876.html |
|