DB_BLOCK_SIZE决定的参数应该是数据库I/O的最小单位,但为什么DB_BLOCK_SIZE参数决定数据库高速缓存中缓冲区的大小,那应该也决定了共享池、日志缓冲区的大小,共享池、日志缓冲区不也是数据库I/O的一部分吗?我这样理解对吗。。
解决方案 »
- 9i和10g区别大吗
- oracle报错 ORA-00933: SQL command not properly ended
- 如何清空 PL SQL 数组?
- 问下怎么查看事务提交或回滚时的SCN号??
- 带@的连接问题,头大。
- 查询效率的问题?
- 如何去除字段值中相同的词?
- exp导出后,执行imp,不断提示“由于对象已存在,下列语句失败”,怎么回事呢?
- 监听服务(OracleOraHome81TNSListener)在服务栏里一刷新就没有了,连停止、已启动或都已禁用这个几个字都没有了。
- kettle连接资源库报错
- 求toad for oracle使用教程
- PL/SQL Developer 中Commit时的提示关掉了怎么开
数据库高速缓存中缓冲区的大小主要由db_block_size决定.不是db_block_size
自9i开始,Oracle引入新的初始化参数db_cache_size;该参数定义主Block Size(db_block_size定义的块大小)的default缓冲池的大小;
Db_cache_size最小值为一个粒度(granule)。
粒度(granule):粒度是连续虚拟内存分配的单位,粒度是9i新引入的参数,其大小取决于SGA_MAX_SIZE参数所定义的SGA总的大小
当SGA<128M时,粒度值为4M;
否则粒度值为16M
粒度大小受内部隐含参数_ksmg_granule_size的控制
==================================================
我的理解:
DB_BLOCK_SIZE 不能决定 database buffer cache 的大小,而是决定了 database buffer cache 中的每一个 buffer 的大小,所以 database buffer cache 的大小是 DB_BLOCK_SIZE 的倍数。就是说每个 database block 都是被读入 database buffer cache 中的一个 buffer 中的。
DB_BLOCK_SIZE determines the size of the buffers in the database
buffer cache. When the instance is instructed to create a database, this size will also be
used to format the datafiles that make up the SYSTEM and SYSAUX tablespaces.
意思应该是DB_BLOCK_SIZE决定了数据库缓存区的大小并且在创建数据库的时候用于格式化SYSTEM和SYSAUX的表空间,应该没理解错吧。。
难道书上有错误
意思应该是DB_BLOCK_SIZE决定了数据库缓存区的大小
===================================================================================
如果你说的“数据库缓存区”对应为the database buffer cache,那么你的理解就是错误的。
database buffer cache 是由一个一个的 buffer 组成的,DB_BLOCK_SIZE 只是决定了那一个个 buffer 的大小,而不是整个 cache 的大小。When the instance is instructed to create a database, this size will also be
used to format the datafiles that make up the SYSTEM and SYSAUX tablespaces.
===============================================================================
就是说当创建数据库时,构成这两个表空间的数据文件的 DB block 的大小是由 DB_BLOCK_SIZE 参数决定的。
DB_BLOCK_BUFFERS specifies the number of database buffers in the buffer cache. It is one
of several parameters that contribute to the total memory requirements of the SGA of an
instance.
This parameter, together with DB_BLOCK_SIZE, determines the total size of the buffer
cache. Effective use of the buffer cache can greatly reduce the I/O load on the database. DB_
BLOCK_SIZE can be specified only when the database is first created, so you use DB_
BLOCK_BUFFERS to control the size of the buffer cache.