perl排序比Oracle排序好吗?

时间:2014-04-25 12:00:32

标签: oracle perl sorting sql-order-by

如果在Oracle中使用ORDER BY的查询所需的缓冲区数是没有ORDER BY的查询的10倍,那么可以安全地假设我应该将排序留给业务层(perl排序)吗?

3 个答案:

答案 0 :(得分:7)

在其他条件相同的情况下,我会选择Oracle排序。使用正确的索引,这应该更有效率。

我等待与Perl一起排序的唯一原因是我需要使用最新版本的Unicode Collat​​ion,因为Perl倾向于比Oracle的人员更快地跟踪Unicode标准。 perlbrew还可用于非破坏性地向您的计算机添加更多现代perl版本,而不会像Oracle升级那样痛苦。当然,这假定您可以在业务层中安装当前版本的Perl ...

答案 1 :(得分:4)

非常可能 perl可能是更快的排序引擎。不久前,一个网站(http://onlyjob.blogspot.com/2011/03/perl5-python-ruby-php-c-c-lua-tcl.html)发布了各种语言的基准比较。尽管perl是用C语言编写的,但在某些测试中它比C更快。

http://sites.google.com/site/onlyjob/arena/speed_close.png

如果这是您经常进行的查询,您可能需要考虑在oracle上直接创建某种索引或存储过程,这可能会加快查询速度。但是,如果您无法控制Oracle数据库,请务必使用忍者风格的perl。

将事情留在Oracle端的一个主要优点是,您可以调整oracle以使您的特定查询更快,如果您的数据集最终增长,理论上您也可以加强或集群oracle服务器。

答案 2 :(得分:2)

我没有看到任何逻辑,为什么业务层将比Oracle更快或更慢地执行排序。业务层需要像Oracle一样需要进行排序和缓冲。并指定一行" ORDER BY [column]"可能比任何客户端代码都容易得多。