147.View the Exhibit.
storage you find that the block size that you can provide is only 8 KB.
Which configuration could have enabled the block selection of 16 KB?
A.choosing the extent allocation type to uniform
B.choosing the Segment Space Management option to manual
C.setting autoextension on for the data file mentioned for the tablespace
D.setting the DB_16K_CACHE_SIZE parameter for the database instance to a nonzero value
答案:D
解析:
一、数据块
1.9i之后可以使用多种块大小,首先使用一个标准的数据块,然后最多可以定义4种其他的数据块,值为2的n次方,范围是2~32(这里也就5种)
2.使用其他块大小的时候,必须首先设置 db_nk_cache_size 的大小
SQL> show parameter k_cache_size
NAME TYPE VALUE
------------------ ----------- ------
db_16k_cache_size big integer 0
db_2k_cache_size big integer 0
db_32k_cache_size big integer 0
db_4k_cache_size big integer 0
db_8k_cache_size big integer 0
首先应该设置这里对应的值,这里需要注意的是与数据库块大小相同的不能设置
create tablespace cache_size datafile'cache_size_001.dbf' size 16M BLOCKSIZE 16K; --这里的16k必须先设置db_16k_cache_size
3.标准数据库大小用于系统表空间和临时表空间
4.数据块的内容和参数
i.块头
存储数据块的地址、表目录、行目录和事务槽,头部从上往下增长
ii.数据区
位于数据块的底部,当插入行的时候从下向上增长
iii.空闲区
位于中间,最初始是连续的,当删除和插入后导致碎片化,smon会进行合并空闲区的操作
5.手工数据块的管理
i.插入操作的时候,oracle将保留数据块15%的空闲空间,为将来的更新做准备
ii.当空闲区小于15%的时候,oracle将该数据从空闲队列(freelists)中去掉
iii.如果删除或修改造成了数据行的缩小,虽然大于了15%,但是使用的空间大于30,因此还是不能插入
iv.只有当小于30(pctused),该数据块才可以重新放入空闲队列中