+ -
当前位置:首页 → 问答吧 → 请教个关于sql优化的问题。order+表达式。

请教个关于sql优化的问题。order+表达式。

时间:2010-08-18

来源:互联网

select a,b,c from (select a,b ,c,row_number()over( order by (b/a)*1.314 desc) rn from test) where rn<1000


目的就是想去 test表里面的(b/a)*1.314最大的1000列。
由于order by 里面带表达式,导致查询效率极低。有没有什么办法可以优化下。谢谢。

作者: toniz   发布时间: 2010-08-18

感觉没有啊。太难了。

作者: renxiao2003   发布时间: 2010-08-18

在做两个数据库的效率测试。

相同数据。上面这个语句,oracle整整用了642秒,而Greenplum仅仅用了11秒。。。。。

这个差距我看了相同无语。

而我发现仅仅做计算并不需要多少时间,主要是一ORDER,就惨了。那效率。。。。。。

作者: toniz   发布时间: 2010-08-18