Oracle 参数 DB_BLOCK_SIZE 官方解释,作用,如何配置最优化建议

本站中文解释

DB_BLOCK_SIZE:数据库块大小,定义每个数据库块的大小,单位是字节。 Oracle 支持2K–32K 的块大小,具体支持见文档。
正确设置DB_BLOCK_SIZE有以下几点注意事项:

1.创建数据库时必须设置数据库块大小,而且只能在创建数据库时才能设置,后续不能修改;
2.太小的DB_BLOCK_SIZE将增加I/O,这可能降低性能,但是一般分配一次设置后也可以不用太操心,Oracle根据数据库用途自己做了合理的优化;
3.太大的DB_BLOCK_SIZE可能增加系统内存,影响的比db_block_size小的内存分配;
4.不同的数据库操作类型,比如OLTP、DWH,应该设置不同的大小,如果系统中有多种能有不同的数据库操作类型,则建议多实例数据库设置,各自定制自己的DB_BLOCK_SIZE。

实际操作中,根据具体应用场景,可以使用如下流程进行设置:

1.根据表空间和表空间中对象的大小,建议设置为8k或16k,如果存在大表或表空间(20G以上),此时可以考虑32K,这可以减少物理块的数量,减少磁盘I/O;
2.与表空间中对象有关的配置,如包、函数、触发器等,最小的DB_BLOCK_SIZE应该控制在2KB以上,因为表空间中显示的对象会有一些伴随对象如索引对象,这些对象会存储在表空间中,如果DB_BLOCK_SIZE过小,可能会导致数据库访问性能大幅度下降;
3.数据库字典表中ID1是有关DB_BLOCK_SIZE的,可以通过查询该表得到DB_BLOCK_SIZE值;
4.如果在V7.3.4.5.7版本以及之前的版本,DB_BLOCK_SIZE的值不能超过2048;
5.在支持大块大小的系统上,考虑32K,但这可能会减少系统缓冲区池大小,从而降低性能;
6.如果有经验可以查询目前数据库中最大行长度,然后根据最大行长度除以500( (计算最大可能需要多少个字节来存放此种行)),比如有一行数据最长为3000字节,3000÷500=6,所以最佳的DB BLOCK_SIZE=6 x 500 =3000,当然也推荐设置DB_BLOCK_SIZE 8K, 16K等。
7.如果数据库多次重启,其中参数db_block_size已经被设置,那么在重启数据库时,这个参数会占用较大的内存,所以在重启时可以把db_block_size设置为8K, 并在重启完后重新设置自定的db_block_size。

官方英文解释

DB_BLOCK_SIZE specifies (in bytes) the size of Oracle database blocks.

Property Description

Parameter type

Integer

Default value

8192

Modifiable

No

Modifiable in a PDB

No

Range of values

2048 to 32768, but your operating system may have a narrower range

Basic

Yes

Oracle RAC

You must set this parameter for every instance, and multiple instances must have the same value.

Note:

Set this parameter at the time of database creation. Do not alter it afterward.

Typical values for DB_BLOCK_SIZE are 4096 and 8192. The value of this parameter must be a multiple of the physical block size at the device level.

The value for DB_BLOCK_SIZE in effect at the time you create the database determines the size of the blocks. The value must remain set to its initial value.

For Oracle Real Application Clusters (Oracle RAC), this parameter affects the maximum value of the FREELISTS storage parameter for tables and indexes. Oracle uses one database block for each freelist group. Decision support system (DSS) and data warehouse database environments tend to benefit from larger block size values.

Note:

64-bit operating systems support a maximum DB_BLOCK_SIZE value of 32768

See Also:

  • Oracle Database
    Administrator’s Guide
    for information on setting this parameter

  • Oracle Database SQL
    Language Reference
    for information on freelist groups


数据运维技术 » Oracle 参数 DB_BLOCK_SIZE 官方解释,作用,如何配置最优化建议