+ -
当前位置:首页 → 问答吧 → 30万数据90秒查询正常吗?

30万数据90秒查询正常吗?

时间:2011-12-12

来源:互联网

我的系统是32位的windows server 2003 企业版sp2,数据库是sql server 2000 sp4,CPU是Pentium(R) Dual-Core CPU E5300 @2.60GHz, 内存2G,在查询分析器中用select count(*) from 表,查询时,30万的数据用了90秒,请问这正常吗?如果不正常怎么解决?

作者: notended   发布时间: 2011-12-12

不正常
SQL code
SELECT  COUNT(*)
FROMWITH ( NOLOCK )
看下多少时间

作者: wufeng4552   发布时间: 2011-12-12

还算比较正常。这种情况下,就需要提高硬件,比如用固态硬盘,这样速度就会快很多

作者: xiaoxiangqing   发布时间: 2011-12-12

select * from tb
select @@rowcount

作者: ssp2009   发布时间: 2011-12-12

90秒 有主键 有索引吗?

没有的话是比较正常的

作者: fredrickhu   发布时间: 2011-12-12

引用 4 楼 fredrickhu 的回复:
90秒 有主键 有索引吗?

没有的话是比较正常的

select count(*) from 表
有索引
有主键
能index seek ?

作者: wufeng4552   发布时间: 2011-12-12

引用 5 楼 wufeng4552 的回复:
引用 4 楼 fredrickhu 的回复:
90秒 有主键 有索引吗?

没有的话是比较正常的

select count(*) from 表
有索引
有主键
能index seek ?




我都没看见 select count(*) from tb

作者: fredrickhu   发布时间: 2011-12-12

有主键和索引,都是id
SELECT COUNT(*) FROM [30万的表] WITH ( NOLOCK ) 用时2分15秒 366872数据
select * from [30万的表] select @@rowcount 已经过去7分钟了,还没有执行完毕

作者: notended   发布时间: 2011-12-12

select count(id) from b

count(*)
count(id)
试试有区别吗?

作者: a135a135   发布时间: 2011-12-12

当然有区别,count(*)是指所有记录,count(id)是指有效id记录,但是本案中一样

作者: notended   发布时间: 2011-12-12

引用 9 楼 notended 的回复:
当然有区别,count(*)是指所有记录,count(id)是指有效id记录,但是本案中一样



*是指表中所有的字段,id表中某一字段,
你不加条件 where,查询的都是所有记录
count()某一字段时间么变?

作者: a135a135   发布时间: 2011-12-12

count 不论是*还是别的,时间相差无几

作者: notended   发布时间: 2011-12-12