用哪个查询语句更快些 !

ma1987819 2009-07-14 10:03:40
select max(编号) from table

select top(1) 编号 from table order by 编号 desc

就是查找 最大编号
...全文
60 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
chen_ya_ping 2009-07-14
  • 打赏
  • 举报
回复
top的比较快。
tian1989 2009-07-14
  • 打赏
  • 举报
回复
学习到了好东西
IHandler 2009-07-14
  • 打赏
  • 举报
回复
max 执行计划
聚集索引扫描(开销85%)-->流聚合(开销15%)-->select(开销0%)

top执行计划
聚集索引扫描(开销100%)-->前几行top(开销0%)-->select(开销0%)
ma1987819 2009-07-14
  • 打赏
  • 举报
回复
谢谢 大家哦 我那破机器 代不起来。 我感觉也是TOP快 尤其是数据多的时候
IHandler 2009-07-14
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 yfqvip 的回复:]
其实不用想也应该明白,max要一条条的对比,用的时间要长,top只要取第一条,不用对比.
[/Quote]
以前没比较过,开始我也以为是max快,但是事实说明top快,我用2W条数据测试,top更明显
Hide1984 2009-07-14
  • 打赏
  • 举报
回复
Max的效率比较地一些
开一下执行计划可以看出
Max的执行: Select -> Stream Aggreagate - > Top ->Clustered INdex Scan
Top 1 的执行: Select -> Top ->Clustered INdex Scan

显而易见 Max 是先做聚合再做top~~~~~
满衣兄 2009-07-14
  • 打赏
  • 举报
回复
其实不用想也应该明白,max要一条条的对比,用的时间要长,top只要取第一条,不用对比.
IHandler 2009-07-14
  • 打赏
  • 举报
回复
我在Sql Server 2005中测试,第一次运行时,明显select top(1) 编号 from table order by 编号 desc 快
满衣兄 2009-07-14
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ma1987819 的回复:]
我简版的 没有查询分析器
[/Quote]
没有就装一个,拿出点学习的样子,自己得到的结果印象也深.
zzxap 2009-07-14
  • 打赏
  • 举报
回复
max返回表达式得最大值,TOP 子句限制返回到结果集中的行数。
差别在于top对结果集还要进行排序,简单的max和top 1是感觉不出的速度的,当数据量大之后,两者的差别就越明显,当然,如果字段设置索引的话情况或许就有所不同,效率上也许会一样,具体没有做过这个测试,所以在这种情况下我们最好用max而不是top 1,这样程序的执行效率,运行成本才会降的最低。。。
ma1987819 2009-07-14
  • 打赏
  • 举报
回复
我简版的 没有查询分析器
满衣兄 2009-07-14
  • 打赏
  • 举报
回复
在查询分析器里执行一下就知道了,执行之后状态栏上会显示用了多少时间!
亚丁号 2009-07-14
  • 打赏
  • 举报
回复
恩 应该是MAX
ma1987819 2009-07-14
  • 打赏
  • 举报
回复
看的不太明白 那是 top(1) 快了呗 我这有2W数据呢
  • 打赏
  • 举报
回复
我觉得应该是第2个快
jiangshun 2009-07-14
  • 打赏
  • 举报
回复
max
IHandler 2009-07-14
  • 打赏
  • 举报
回复
忘了说了,我测试的表有1万条数据
IHandler 2009-07-14
  • 打赏
  • 举报
回复
第一条:
客户端执行时间 10:16:17 10:15:42
查询配置文件统计信息
INSERT、DELETE 和 UPDATE 语句的数目 0 0 0.0000
INSERT、DELETE 或 UPDATE 语句影响的行数 0 0 0.0000
SELECT 语句的数目 2 2 2.0000
SELECT 语句返回的行数 2 2 2.0000
事务数 0 0 0.0000
网络统计信息
服务器往返的次数 3 3 3.0000
从客户端发送的 TDS 数据包 3 3 3.0000
从服务器接收的 TDS 数据包 4 4 4.0000
从客户端发送的字节数 234 270 252.0000
从服务器接收的字节数 4933 4856 4894.5000
时间统计信息
客户端处理时间 0 0 0.0000
总执行时间 109 62 85.5000
服务器应答等待时间 109 62 85.5000

第二条:
客户端执行时间 10:15:42
查询配置文件统计信息
INSERT、DELETE 和 UPDATE 语句的数目 0 0.0000
INSERT、DELETE 或 UPDATE 语句影响的行数 0 0.0000
SELECT 语句的数目 2 2.0000
SELECT 语句返回的行数 2 2.0000
事务数 0 0.0000
网络统计信息
服务器往返的次数 3 3.0000
从客户端发送的 TDS 数据包 3 3.0000
从服务器接收的 TDS 数据包 4 4.0000
从客户端发送的字节数 270 270.0000
从服务器接收的字节数 4856 4856.0000
时间统计信息
客户端处理时间 0 0.0000
总执行时间 62 62.0000
服务器应答等待时间 62 62.0000

ma1987819 2009-07-14
  • 打赏
  • 举报
回复
。。。怎么还不一样哦 有证据没
HDNGO 2009-07-14
  • 打赏
  • 举报
回复
1
加载更多回复(2)

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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