缓冲区缓存如何在oracle数据库中工作
问题描述:
我的问题是,在Oracle数据库中如果有5Gb表和SGA大小为10GB,如果我选择5Gb表,它将适合10GB SGA大小。缓冲区缓存如何在oracle数据库中工作
但是,如果我的表超过10GB,并且我的SGA大小是5Gb,那么select查询如何工作,它是否显示10GB表的所有行,以及缓冲区CACHE如何工作?
答
发生完整或部分检查点。
恢复时间阈值出现,我们再次设置。
需要一个空闲块并且在给定的时间量之后没有找到(我们在这里使用LRU算法)。
某些数据定义语言命令(DDL)。
每隔三秒钟。还有很多其他的原因,算法很复杂,可以随每次发布oracle而改变。
如果我们有一个比SGA更大的表格,那么我们必须将SGA的大小再次定义为所需的大小,然后问题就解决了。
我们可以在创建数据库时定义SGA和PGA的大小。
缓冲缓存工作:
当我们从磁盘请求数据时,以最小的Oracle读取一个block.Even如果我们要求仅一排,在同一表中许多行都有可能被检索,其位于在同一个块中。列也是如此。
在缓冲区高速缓存块可以在三种状态之一:
- 免费:当前未使用。
- 固定:当前正在访问。
-
脏:块已被修改,但目前尚未写入磁盘。
- 数据库发出关机指令:
当出现以下情况之一的块写入了被触发。
在现实生活中,您不会选择10GB表中所有行的所有列。或者如果你做了,你不会再做一次。 – APC
您应阅读“数据库概念”手册中的SGA部分。 [了解更多信息](http://docs.oracle.com/database/121/CNCPT/memory.htm#CNCPT802)。您应该阅读所有内容,以了解*缓冲区和全表扫描*部分。 – APC