时间:2021-07-01 10:21:17 帮助过:45人阅读
1、 1、 在命令窗口中执行: SQL show parameter db_block_size NAME TYPE VALUE ------------------------------------ ----------------------------------------- db_block_size integer 8192 2、 2、 在SQL窗口中执行: //查询实例的db_block_size(为81
1、
SQL> show parameter db_block_size
NAME
------------------------------------ -----------------------------------------
db_block_size
2、2、 在SQL窗口中执行:
//查询实例的db_block_size值(为8192 bytes)
select value from v$parameter where name='db_block_size'
//查询出的回滚段中每个extent的初始分配的大小
select initial_extent fromdba_rollback_segs
//initial_extent值除以db_block_size后的结果:
select initial_extent/8192 fromdba_rollback_segs
由此可见,initial_extent值是db_block_size的整数倍,db_block_size的默认值为8192 bytes,是不能被用户修改的。因为db_block_size对应于一个实例,所以意味着在数据库创建(建库)以后是不能修改的,如需修改,可行的方式是重新建库并把原库的数据export到新库。当然最好的方式是在建数据库之前就规划好,一般如果是OLTP系统,可以保持默认值;OLAP环境可以考虑适当调大。
db_block_size典型的值有4096 bytes 和 8192 bytes,且必须是操作系统块(os block)的整数倍。操作系统块(os block)在Windows下可以通过fsutil工具查看,在Linux下则可以使用tune2fs命令。
Windows下使用方法如下:
D:\>fsutil fsinfontfsinfo c:
NTFS 卷序列号 :
版本:
区数量:
簇总数:
可用簇:
保留总数:
每个扇区字节数:
每个簇字节数: