顶,这个问题我很感兴趣!
----------------------------
CSDN一号机器人
----------------------------
CSDN一号机器人
解决方案 »
- 一个SQL的优化
- 谁用ASP.NET + oracel做过项目
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$关于ORA-00937 不是单组分组函数 问题,在线等,解决即给分$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
- 有关ORACLE JOB 急啊!!急啊!!急
- 数字顺序问题
- orcle 权限问题?
- 求助,求助,求助
- 如何检索出历史记录中最新的50条记录?100分马上结
- 请问哪里有PL/SQL Developer5.0.1.480的相关教程吗?
- 论坛中几人用develope开发!!!!签个到!!!
- 请问oracle和xml结合的书,请推荐一本。
- 为什么我的select执行效果这么低?(在线等)
from
(select * ,rownum rid
from Table(表名) where Condition(条件)
)
t
where rid between 10 and 1000
实际上,sql语句还需要加上一个排序的子句。现在的测试表明,瓶颈就在order by上面。如何解决?
select *
from (select rownum as rid
from
(select *
from Table(表名) where Condition(条件) order by field1(字段名)
)
)
where rid >= 10 and rid < 1000;
create index ind_field on tbl(field1);
(select rownum as rid
from Table(表名) where Condition(条件) order by field1(字段名))
where rid >= 10 and rid < 1000;
create unique index ind on Table(col1,col2);
b.你可以在PL/SQL工具得SQL分析一下。看还有瓶颈不
c.可以在SELECT 后面加上 /*rule*/ 试试如果还没什么改善得话,就这样了.关于SQL得优化,除了书上基本得优化措施外,还是多试试,有些SQL并不象你想象的和书上说的那样,让人莫名奇妙的,看来只有ORACLE心里自己清楚了。
create unique index ind on Table(col1,col2);
select rownum as rid,a.*
from Table(表名) a where Condition(条件) and rownum >= 10 and rownum < 1000 order by a.field1(字段名))
to:dinya2003(OK) 有空可以交流一下SQL优化心得,我的msn是;[email protected]
请上面认为这句句子没有什么可以改善的人,好好的学习,不要误导别人。
解决的方法不是只用INDEX。
from (select rownum as rid
from
(select *
from Table(表名) where Condition(条件) order by field1(字段名)
)
)
where rid >= 10 and rid < 1000;考虑改成
select * from (select *
from Table(表名) where Condition(条件) order by field1(字段名)
) where rownum<1000
minus
select * from (select *
from Table(表名) where Condition(条件) order by field1(字段名)
) where rownum<11;
执行的时候会首先过滤掉<1000的所以这个句子没有必要用minus吧
不是符合条件的10-1000条。
想实现你的要求,简直易如反掌。
使用rowid。
GZ吧
呵呵
up一把
gz一把
from (select t.*,rownum rid
from Table(表名) t where Condition(条件)
)
where rid >= 10 and rid < 1000 order by rid