导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

比较两个SQL语句的运行速度。。。。。

myhot-河马吃草 中科京安 项目经理  2003-12-10 11:46:40
id 为int类型

第一个:"select min(id) as id from 表 "
第二个: "select top 1 id as id from 表 order by id"


请问:哪个运行更快一些??
...全文
14 点赞 收藏 14
写回复
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
evlon 2003-12-10
select top 1 code from dbo.HRDT_e_pubmsg order by code
duration read
0 0 22

select min(code) from dbo.HRDT_e_pubmsg
duration read
78 0 32

code,是自增一的!

不知道有什么索引
回复
dlpseeyou 2003-12-10
第二个运行快,第一个用到了函数。
回复
caiyunxia 2003-12-10
第一个:"select min(id) as id from 表 "
回复
wzh1215 2003-12-10
楼上的几位好像都不对吧,不信你们在查询分析器中用CTRL+L查看一下谁快谁慢!
第一个有函数,但第二个因为有排序
回复
pbsql 2003-12-10
若在id上建了索引应该是一样
回复
lvltt 2003-12-10
第二个快。同意楼上的
回复
pbsql 2003-12-10
第二个比第一个快,因为第一个用了函数
回复
wzh1215 2003-12-10
把两条语句放到查询分析器中。
然后按:CTRL+L
查看执行计划!
回复
webwolfa 2003-12-10
有一个,怎样才测出上面两个句子的具体查询进间。
回复
yangyakun 2003-12-10
有没有人来给点专业的建议啊~!我看是第一个吧!用的语句少速度快啊!
用到函数不一定就慢啊!
回复
showmetoyou 2003-12-10
呵呵!再补充一个!我想大家就明白了!
select top 1 id as id from test order by id ASC
占用CPU 运行时间
0 0
回复
showmetoyou 2003-12-10
测试:
表test:
id f1 f2 f3 f4
--------------------------------------------------------------------------
1 23 10.00000000 3 NULL
2 22 17.00000000 9 NULL
3 32 43.00000000 343 3434
4 3434 43343.00000000 34 343

select min(id) as id from test
占用CPU 运行时间
10 10


select top 1 id as id from test order by id
占用CPU 运行时间
0 20
回复
realgz 2003-12-10
明白了,楼主的id 上建有索引,order by可以直接应用 但min还是进行了扫描。我是取消了索引的。
回复
realgz 2003-12-10
我跟了一下使用min 的稍快,好象是因为 统计的扫描效率笔order by高
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告