10.2版本中hash group by一些争议

       10.2中对group by 引入了hash group by替代了sort group by,针对这个新特

性,谈谈个人的看法:

1、在 oracle的白皮书中,推荐使用hash group by,并阐述了性能的优越性,具体

参见:

http://www.oracle.com/technetwork/database/features/bi-datawarehousing/twp-dss-performance-10gr2-0705-128049.pdf

其工作机制如下:基于group by的列建立hash 表,然后基于该hash表找出对应的

记录。并给出了性能提高130%

2、但在实际是否使用中,分歧比较大,目前国外的很多DBA在生产库中关闭了该功

能,因为其目前使用中bug非常多,而且所影响的 数据库版本包含了生产库中常用

的10.2.0.4,从metelink中"hash group by bug"检索出来的bug就达到317篇文档。


3、但数据库专家们不建议关闭,认为这个东西本身是好的,出现了bug,不是简单

的屏蔽,而是找出相应补丁进行解决。

        从以上可以看出,其争论点类似于早期9i版本的ASSM和MSSM争论,个人认

为:

1、在新上系统,并有开发和测试环境中,经过充分测试包含group by语句,可以开

放使用;

2、但对于数据库的升级系统,比如从9i升级到10.2版本,暂时将该功能关闭,具体

关闭有两种方式:
     
      参数中设置”_gby_hash_aggregation_enabled"=false
      或
      在session中加no_use_hash_aggregation提示

相关研究文章:
http://orainternals.wordpress.com/2010/09/30/group-by-hash-aggregation/
http://jonathanlewis.wordpress.com/2008/12/21/group-by/#comment-38013

来源: http://space.itpub.net/354732/viewspace-687434

你可能感兴趣的:(10.2版本中hash group by一些争议)