Oracle问题

Kobayashi 2011-01-10 02:32:41
现在有一个SQL语句。同样的表,同样的条件,查出显示记录为0.087秒
但是我现在求所查询出来的数据的COUNT就要十几秒才能出来
请问有高手知道怎么解决不?
我用的是Oracle9i
...全文
79 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxyzxq2008 2011-01-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ulihss 的回复:]

select count(1) from table where ---要十几秒

select * from table where --只要0.几秒
[/Quote]
select count(1) from table where ---要十几秒
--这个要走排序,时间长
Kobayashi 2011-01-10
  • 打赏
  • 举报
回复
就是看是否走了索引不?
我查了
已经走了索引了
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ulihss 的回复:]
执行计划?
是什么???
[/Quote]
--执行计划就是看看你的语句怎么执行的
scott@YPCOST> set autot on exp;--在sqlplus里可以通过这个自动输出执行计划
scott@YPCOST> select * from dept;

DEPTNO DNAME LOC
---------- -------------- -------------
90 dfd dfd
60 suzhou we
70 suzhou
50 NANCHANG
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON

已选择8行。


执行计划
----------------------------------------------------------
Plan hash value: 3383998547

--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 8 | 128 | 3 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| DEPT | 8 | 128 | 3 (0)| 00:00:01 |
--------------------------------------------------------------------------

scott@YPCOST> select count(*) from dept;

COUNT(*)
----------
8


执行计划
----------------------------------------------------------
Plan hash value: 3380918908

-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 1 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | INDEX FULL SCAN| BIN$8mPMMewIQa6BxCHkeZP6Wg==$0 | 8 | 1 (0)| 00:00:01 |
-------------------------------------------------------------------------------------------
Kobayashi 2011-01-10
  • 打赏
  • 举报
回复
执行计划?
是什么???
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ulihss 的回复:]
select count(1) from table where ---要十几秒

select * from table where --只要0.几秒
[/Quote]会这样 奇怪啊 看看执行计划什么情况
Kobayashi 2011-01-10
  • 打赏
  • 举报
回复
select count(1) from table where ---要十几秒

select * from table where --只要0.几秒
  • 打赏
  • 举报
回复
[Quote=引用楼主 ulihss 的回复:]
现在有一个SQL语句。同样的表,同样的条件,查出显示记录为0.087秒
但是我现在求所查询出来的数据的COUNT就要十几秒才能出来
请问有高手知道怎么解决不?
我用的是Oracle9i
[/Quote]
你的语句是怎么写的?
select count(1) from tablename where ...
这样试试

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧