首页 新闻 搜索 专区 学院

有关查询表中数据数目的问题

0
悬赏园豆:10 [已解决问题] 解决于 2012-10-25 17:04
1 select count(1) from table
2 select count(*) from table
3 
4 select count(name) from table  //name为索引
5 select count(name) from table  //name不是索引

以上4条语句,我去看了下执行计划,生产的计划都是一样的。

曾经看到有大神的文章说 1的速度最快...........................

求教育(热情恭候dudu大师给链接或者解释).................

可惜我是程序员.的主页 可惜我是程序员. | 初学一级 | 园豆:93
提问于:2012-10-25 09:42
< >
分享
最佳答案
0

在不带where条件的情况下,sql 2005开始已经没有区别,都会自动优化使用索引统计

收获园豆:5
acepro | 小虾三级 |园豆:1218 | 2012-10-25 11:04

是在带where 条件下 会自动优化使用索引统计吧?

有木有文章链接,求解释。

可惜我是程序员. | 园豆:93 (初学一级) | 2012-10-25 17:05

@烟雨中闲置: 

执行具体情况和表结构、索引以及数据有关
参考文章:

http://www.dbabeta.com/2008/sqlserver_howto_count.html

acepro | 园豆:1218 (小虾三级) | 2012-10-26 10:01
其他回答(3)
0

sql 2008基本就没什么区别了,有人专门统计过时间,网上有文章

oppoic | 园豆:570 (小虾三级) | 2012-10-25 10:02

恩,对的。我PC 刚从05到08,记忆中以前是有却别的,可是昨晚上无聊,试了下,执行计划竟然是一样的。

支持(0) 反对(0) 可惜我是程序员. | 园豆:93 (初学一级) | 2012-10-25 12:41
0

人家在等dudu,楼上的

田林九村 | 园豆:2367 (老鸟四级) | 2012-10-25 10:36

我猜dudu是不会来了,故捧个场 消灭下0回复 :)

支持(0) 反对(0) oppoic | 园豆:570 (小虾三级) | 2012-10-25 13:24
0

查询优化器执行了优化。具体就是查询优化器使用的探索行算法。生成了几个可能的执行计划,然后选最优的那个执行。所以

都一样。

收获园豆:5
luofer | 园豆:468 (菜鸟二级) | 2012-10-25 16:44

对,这个我知道。

况且上面每一条语句所可能生成的计划本来就不多,就算查询优化器生成所有候选执行计划都是可能的(语句太简单)。

只是我以前看别人文章说上面查询有区别(没有带where条件)

支持(0) 反对(0) 可惜我是程序员. | 园豆:93 (初学一级) | 2012-10-25 17:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册