怎么Oracle决定哪块都没有在高速缓冲区进行查询时?

0

的问题

假设我们执行下面的查询。

select * from employees where salary > 10000;

一段时间后,我们执行下面的查询。

select * from employees where salary > 500;

第二种倾向返回。 但是,我们已经有一些这块在高速缓冲存储器,因为以前的查询。 也许他们中的一些被删除形式的高速缓冲区,但是一些或所有块从第一个查询可能仍然存在。 因此,在这里,该数据库服务器应该知道这块已经存在的和哪些阅读光盘此外。

我的问题是,如何将数据库中找到,并决定这块读光盘另外?

1

最好的答案

3

Oracle使用的 LRU的技术 (即 '至少最近使用'). 这是一个计算机使用的算法来管理数据的高速缓存。 当一个高速缓存变得完全和你需要的空间,为新的东西-你放弃最近使用的项第(东西你还没有使用一段时间,但是在高速缓存消耗空间)。

它不是具体的数据块和数据块是不是真的存在LRU列表,他们管理的通过触摸计这些天里-但触的计算法是非常像一个LRU因此,可以认为这种方式。

总之,当你听到LRU,认为一个高速缓存管理的某些数据(数据的任何数据),并趋向于放弃项目从高速缓存在基于他们是否已于最近使用或没有。 最近的东西已经使用的更多可能是留在缓存。

每一块都有一个DBA-数据块地址,包括文件#和框#. 这种独特识别一块在一个数据库。 Oracle使用的"钥匙",以识别的框在缓缓存。

如果你运行查询,如果一块不是在缓,这是因为LRU已清除了它们为了分配更多的事情,最近使用。 它是没有保障,但是如果你需要那样的保证,可以使用不同的游泳池在高速缓冲存储器、主要可以使用 KEEP 游泳池维持经常访问段在高速缓冲存储器.

希望澄清。

2021-10-28 11:08:38

@奥拉玛斯,任何疑问的答案吗?
Roberto Hernandez

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................