日期:2014-05-17  浏览次数:20799 次

with as语句性能求优化
语句如下:
WITH g AS(   select owner, steps from T1      )                                    SELECT g.Owner    FROM g    WHERE g.Steps = (SELECT MIN(Steps) FROM g)
                        
with中的子查询很快,只有几条数据,<0.1秒,但是加了后面的语句,用来取出结果中最少的那个step所对应的用户,结果需要10秒左右,我不知道性能消耗在哪里?应该如何优化?


                 
                

------解决方案--------------------

select *
  from (select t1.Owner,
               rank() over(order by t1.Steps) myrank
          from t1) t
 where t.myrank = 1


这样你试试。