我很想知道对通常是查询目标的数字列进行分区是否有性能优势。目前我有一个包含约 5000 万条记录的物化视图。当使用常规 b 树索引并按此数字列进行搜索时,我的成本为 7,查询结果大约需要 0.8 秒(使用非主缓存)。在为该列添加全局哈希分区(具有 64 个分区)后,我得到了 6 的成本,并且查询结果在大约 0.2 秒内(再次使用非主缓存)。
我的第一反应是分区索引提高了我的查询性能。但是,我意识到这可能只是一个巧合,可能完全取决于正在搜索的值,或者我不知道的其他值。所以我的问题是:将全局哈希分区添加到大表上的数字列是否会带来性能优势,或者确定要扫描哪些索引分区的成本是否超过了仅在一个上进行全范围扫描的成本?非索引分区?
我敢肯定,就像许多 Oracle 问题一样,可以用“视情况而定”来回答这个问题。:) 我有兴趣了解我应该考虑哪些因素来确定每种方法的好处。
谢谢!