Oracle 与缓冲区获取的索引关联

Oracle 与缓冲区获取的索引关联,oracle,indexing,buffer,relation,Oracle,Indexing,Buffer,Relation,关于Oracle上的缓冲区的索引关系,我一直在思考一个问题 如果我加上一个索引,缓冲区变小,那么这个索引被认为工作正常,这是真的吗 索引也会增加缓冲区获取,而被认为是索引的数据不适合该查询,这也是真的吗 我真的需要一个关于这个问题的解释。提前感谢!:) 添加索引以提供更好的表中数据访问路径,和/或监控唯一约束 Buffer gets只是Oracle为了服务查询而必须读取多少块的度量。它可能从缓冲区缓存中读取每个缓冲区,如果找不到,也可能从磁盘中读取 由于查询所花费的大部分时间通常用于读取数据块(

关于Oracle上的缓冲区的索引关系,我一直在思考一个问题

如果我加上一个索引,缓冲区变小,那么这个索引被认为工作正常,这是真的吗

索引也会增加缓冲区获取,而被认为是索引的数据不适合该查询,这也是真的吗


我真的需要一个关于这个问题的解释。提前感谢!:)

添加索引以提供更好的表中数据访问路径,和/或监控唯一约束

Buffer gets只是Oracle为了服务查询而必须读取多少块的度量。它可能从缓冲区缓存中读取每个缓冲区,如果找不到,也可能从磁盘中读取


由于查询所花费的大部分时间通常用于读取数据块(无论是从缓冲区缓存还是从磁盘),因此我希望通过提供更好的访问路径(例如,添加索引)来改进查询可以减少所需的缓冲区数量,而不是增加它们。

好吧,但目前我有一个例子,我把索引放在上面,缓冲区增加了。这是一个需要执行的小查询(大约0.33秒,在放置索引后,随着缓冲区的增加,它变成了0.75左右)。这是可能的吗?当然-但是涉及的因素太多了,在确定缓冲区增加的原因方面,您几乎没有触及表面。我要做的第一件事是检查有索引和没有索引的查询的查询执行计划。如果您需要进一步的帮助,发布查询计划(通过编辑原始问题)。顺便问一下,这是否意味着如果缓冲区减少,那么执行时间也会减少?因为在我的位置上,我不能确定执行时间是否因为网络流量而减少。我只是想确保我做得对:)如果我是你,我会忘记缓冲区获取。用户不关心缓冲区是增加还是减少,他们关心计算机完成请求所需的时间。先弄清楚挂钟的时间,然后决定它是否真的花得太长;只有到那时,才是确定原因的时候。只关注一个指标(缓冲区获取)很可能是浪费时间。