加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle – 全局分区索引比非分区索引更好(更快)吗?

发布时间:2020-12-12 13:08:51 所属栏目:百科 来源:网络整理
导读:我有兴趣了解分区通常是查询目标的数字列是否有性能优势.目前我有一个包含约5000万条记录的物化视图.当使用常规b树索引并按此数字列进行搜索时,我得到的成本为7,查询结果为0.8秒(使用非初始化缓存).为该列添加全局散列分区(具有64个分区)后,我得到的成本为6,
我有兴趣了解分区通常是查询目标的数字列是否有性能优势.目前我有一个包含约5000万条记录的物化视图.当使用常规b树索引并按此数字列进行搜索时,我得到的成本为7,查询结果为0.8秒(使用非初始化缓存).为该列添加全局散列分区(具有64个分区)后,我得到的成本为6,查询结果大约为0.2秒(同样使用非预备缓存).

我的第一反应是分区索引提高了我的查询性能.但是,我意识到这可能只是巧合,可能完全依赖于搜索的值,或者其他我不知道的值.所以我的问题是:将一个全局散列分区添加到大型表上的数字列是否有性能优势,或者是确定要扫描出哪些索引分区的成本 – 只需对一个全范围扫描的成本进行加权非索引分区?

我确信这与许多Oracle问题一样,可以通过“它取决于”来回答. :)我有兴趣了解我应该考虑哪些因素来确定每种方法的好处.

谢谢!

我很确定你在你的研究中找到了这个参考– Partitioned Tables and Indexes.但是如果有人感兴趣的话,我给它一个链接,这是一个关于分区的非常好的材料.

直截了当 – 分区索引只是将索引分解为碎片(在您的情况下为16)并根据散列分区键传播数据.当您想要使用它时,Oracle会“计算”密钥的哈希并确定在哪个部分继续搜索.

知道索引搜索是如何工作的,对于真正庞大的数据我认为最好选择分区索引以减少遍历的索引树(常规索引).它实际上取决于表中的数据(如何组成常规索引树),并且比起始节点的常规树遍历更快地进行散列和直接跳转到下层节点.

最后,您必须对测试结果更有信心.如果一种技术在您的确切数据上提供了比其他技术更好的结果,则不必担心实现它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读