max与top的效率

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

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

 

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


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

posted @ 2007-05-31 16:45  独孤求败  阅读(848)  评论(1编辑  收藏  举报