在oracle中建如下,
create table T_PLYWITHPHONE
(
CALLID VARCHAR2(20) not null,
CALLERID VARCHAR2(20) not null,
CALLEEID VARCHAR2(20) not null,
PBTIME TIMESTAMP(6) not null,
PETIME TIMESTAMP(6),
ISGENCDR NUMBER(2) not null,
SERVICETYPE VARCHAR2(2) not null,
REVERSE VARCHAR2(20),
TIMELENG NUMBER(10)
);
我需要分页显示数据,比如9999995-10000000这最后五条记录
我自己建立如下存储过程,和索引,可查询速度仍然慢得死,求教优化方案?
我的方案如下:
1。在原表基础上建索引:
create index INDEX_T_PPHONE_CALLERID on T_PLYWITHPHONE (CALLERID);create index INDEX_T_PPHONE_PBTIME on T_PLYWITHPHONE (PBTIME);create index INDEX_T_PPHONE_PETIME on T_PLYWITHPHONE (PETIME);create index INDEX_T_PPHONE_ISGENCDR on T_PLYWITHPHONE (ISGENCDR); 2。我的查询语句:
分页查询:
select CALLERID,
CALLEEID,
to_char(PBTIME,
'YYYY-MM-DD
HH24:MI:SS') PBTIME,
to_char(PETIME, 'YYYY-MM-DD HH24:MI:SS') PETIME,
TIMELENG,
isGenCDR
from (select rownum num,
CALLERID,
CALLEEID,
PBTIME,
PETIME,
TIMELENG,
isGenCDR
from T_PLYWITHPHONE
where 1 = 1) t
where num >= 9999995 and num < 10000000 请问对于以上方案,查询居然需要135秒,太慢,可否提高查询速度了
请高速指教?
create table T_PLYWITHPHONE
(
CALLID VARCHAR2(20) not null,
CALLERID VARCHAR2(20) not null,
CALLEEID VARCHAR2(20) not null,
PBTIME TIMESTAMP(6) not null,
PETIME TIMESTAMP(6),
ISGENCDR NUMBER(2) not null,
SERVICETYPE VARCHAR2(2) not null,
REVERSE VARCHAR2(20),
TIMELENG NUMBER(10)
);
我需要分页显示数据,比如9999995-10000000这最后五条记录
我自己建立如下存储过程,和索引,可查询速度仍然慢得死,求教优化方案?
我的方案如下:
1。在原表基础上建索引:
create index INDEX_T_PPHONE_CALLERID on T_PLYWITHPHONE (CALLERID);create index INDEX_T_PPHONE_PBTIME on T_PLYWITHPHONE (PBTIME);create index INDEX_T_PPHONE_PETIME on T_PLYWITHPHONE (PETIME);create index INDEX_T_PPHONE_ISGENCDR on T_PLYWITHPHONE (ISGENCDR); 2。我的查询语句:
分页查询:
select CALLERID,
CALLEEID,
to_char(PBTIME,
'YYYY-MM-DD
HH24:MI:SS') PBTIME,
to_char(PETIME, 'YYYY-MM-DD HH24:MI:SS') PETIME,
TIMELENG,
isGenCDR
from (select rownum num,
CALLERID,
CALLEEID,
PBTIME,
PETIME,
TIMELENG,
isGenCDR
from T_PLYWITHPHONE
where 1 = 1) t
where num >= 9999995 and num < 10000000 请问对于以上方案,查询居然需要135秒,太慢,可否提高查询速度了
请高速指教?
解决方案 »
- imp ABOUT TO ENABLE CONSTRAINTS ...停在哪里了
- Union all 的各个结果集 count数 取得。。。
- sql语句不会写,求助!!!!!!!!!!!!!
- 使用DML语句会自动提交吗
- ORACLE表利用序列实现自增字段的问题
- oracle存储过程溢出问题
- oms在windows2003上无法启动的问题,我已经找了多资料了,但就是没法解决
- ORACLE表字段增加,为什么相关的视图和过程和方法都会出现错误?
- 各位请问谁有关于ORACLE DBA入门的PPT文档的资料?
- 寻求 Blob 在java中的处理
- 如何查找INVAILD对象的错误根源?
- ORA-02025: SQL 语句的所有表均必须在远程数据库中.........急等问题解决
select CALLERID,
CALLEEID,
to_char(PBTIME,
'YYYY-MM-DD
HH24:MI:SS') PBTIME,
to_char(PETIME, 'YYYY-MM-DD HH24:MI:SS') PETIME,
TIMELENG,
isGenCDR
from (select CALLERID,
CALLEEID,
PBTIME,
PETIME,
TIMELENG,
isGenCDR
from T_PLYWITHPHONE
where 1 = 1
order by CALLERID ) t
where rownum < 10000000 )
where rownum > 9999995
那SQL的性能更不要说了,使用row_number也有问题,它会使用Win的内存。查询起来也要消耗很大资源。就该问题,最好的解决办法就是考虑换方案
也许你会有不一样的收获俄