10.2版本中hash group by一些爭議

yezhibin發表於2011-02-17
       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



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/354732/viewspace-687434/,如需轉載,請註明出處,否則將追究法律責任。

相關文章