gpt4 book ai didi

Oracle索引冗余

转载 作者:行者123 更新时间:2023-12-02 00:58:20 24 4
gpt4 key购买 nike

我和一位同事是 Oracle 新手,正在分析表上的索引。这是遗留问题,索引当前已存在于表中

Mytable
* ID (primary key)
* partId (Id column in part)
* partNum (partNum column in part...partNum can have more than one partId)
* description (description of partNum...can be different for each partNum)
* dateReceived

IDX_PART_ID_PART_NUM(partId, PartNum)
IDX_PART_NUM(partNum)
IDX_DATE_RECEIVED(dateReceived)

我们的索引似乎有冗余。我们是否应该从 IDX_PART_ID_PART_NUM 中删除partNum?我们应该删除 IDX_PART_NUM 吗?如上所述,一个partNum可以有多个id,因为每个部分可以在一个对象中存在多次。

基本上,在 Oracle 中,索引是如何工作的?

最佳答案

如果您的查询同时查找 partIDpartNum,那么您需要维护索引。索引中包含两列意味着索引首先按 partID 进行分割,然后针对每个 partID 再按 partNum 进行分割。仅在 partNum 上设置其他索引对于仅在 partNum 上查询而不是在 partID 上查询的查询非常有用。

这是一篇好文章的链接:http://it.toolbox.com/blogs/confessions/post-index-how-oracle-works-10605

作为一般规则,我会避免接触遗留系统上的索引。如果它是已经投入生产一段时间的旧系统,那么这些索引可能是由 DBA 创建的,DBA 进行了一些分析和规划,以确保它们运行良好并适合数据的使用。

关于Oracle索引冗余,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3842435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com