max与top的效率

  打开一个统计的页面,等了差不多两分钟,时间也确实太久了,虽然统计是复杂点,只不过应该没有这么慢才是,今天认真的把sql语句查看了一下,将写的top修改为max,统计页面的呈现时间就只有几十秒,问题终于解决了14.gif。。。
   部分sql得代码如下:

1None.gifselect max ( VaryDate )  from tbl_b_Projectinfo p      
2None.gifinner join tbl_b_sonItems s on p.SubItemID = s.SubSupeID        
3None.gifinner join ItemPrjVaryHistory h on h.ItemPrjId = p.ProjectID and VaryType='工程完工'   
4None.gifwhere     s.supeid =  @Supeid   

 

1None.gifselect top 1 VaryDate   from tbl_b_Projectinfo p      
2None.gifinner join tbl_b_sonItems s on p.SubItemID = s.SubSupeID        
3None.gifinner join ItemPrjVaryHistory h on h.ItemPrjId = p.ProjectID and VaryType='工程完工'   
4None.gifwhere     s.supeid =  @Supeid   order by VaryDate    desc


    max返回表达式得最大值,TOP 子句限制返回到结果集中的行数。
    差别在于top对结果集还要进行排序,简单的max和top 1是感觉不出的速度的,当数据量大之后,两者的差别就越明显,当然,如果字段设置索引的话情况或许就有所不同,效率上也许会一样,具体没有做过这个测试,所以在这种情况下我们最好用max而不是top 1,这样程序的执行效率,运行成本才会降的最低。。。
   

转载于:https://www.cnblogs.com/oldhorse/archive/2007/05/31/766641.html


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部