首页 新闻 会员 周边 捐助

大家查询一张10万条记录,所用的时间

1
悬赏园豆:20 [已关闭问题]

大家好,

  我查询一张有10万条记录的 表,字段是9个。都是VARCHAR2类型的。

  使用的语句:select * from a where id='1020000001'

  表中的ID不一定是唯一的。但是建了索引。耗时都是15-30毫秒之间

     select * from a 耗时也是15-30毫秒之间。这个性能会很差吗?如果是,可以再怎么来提高查询速度。

问题补充: 没人做这块的吗?
Hayne的主页 Hayne | 初学一级 | 园豆:5
提问于:2010-08-02 15:48
< >
分享
其他回答(5)
0

是不是聚合索引。

Astar | 园豆:40805 (高人七级) | 2010-08-02 16:46
非聚合索引
支持(0) 反对(0) Hayne | 园豆:5 (初学一级) | 2010-08-02 17:26
0

如果ID重复的不多的话,那这个执行时间没问题的,接近于全表查询的时间嘛,如果重复的记录比较多,那就应该比全表查小。

dege301 | 园豆:2825 (老鸟四级) | 2010-08-02 16:46
重复的记录不多。就10条左右
支持(0) 反对(0) Hayne | 园豆:5 (初学一级) | 2010-08-02 17:27
@Hayne:那就正常
支持(0) 反对(0) dege301 | 园豆:2825 (老鸟四级) | 2010-08-03 09:13
0

不差,你这个 15-30 毫秒好像是数据传递的时间吧!

Launcher | 园豆:45050 (高人七级) | 2010-08-02 17:01
性能能再提高吗?
支持(0) 反对(0) Hayne | 园豆:5 (初学一级) | 2010-08-02 17:27
你得系统的测试,为数据库服务器准备单独的机器,保证服务器无额外的占用CPU的进程在运行,测试客户端和服务器之间的网络通畅.
支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2010-08-02 18:03
0

可以,把*号换成字段的名,再配个强大的处理器.

Jesser | 园豆:34 (初学一级) | 2010-08-02 18:01
0

create table as select * from a where id='1020000001'

逻辑读是多少?定立的基线是多少?


以下是估计是最快的了。
create table a_1020000001 as select * from a where id='1020000001';

select * from a_1020000001 ;

 

killkill | 园豆:1192 (小虾三级) | 2010-08-02 19:00
0

要知道统计时间也是有一个精确度和误差的。

一般的精确度是10毫秒,也许是15毫秒。而且还有一个误差。

所以这个结果比较正常。

另外,表应该有一个主键,ID字段要设置非聚集索引。

金色海洋(jyk) | 园豆:290 (菜鸟二级) | 2010-08-03 12:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册