安装数据库的时候,块已经是默认了(9I默认是8M),不建议去修改,调整其他影响SGA的参数就行了
解决方案 »
- oracle11g Enterprise ManageMent sysman用户登陆失败
- 重分感谢,求移植经验
- 有几个问题,咨询一下大家
- Count(*) 和 count(1) 的问题
- Oracle 高级查询. (小弟在线等)
- 请教大家一个有关数据库(附加)的问题?请赐教..
- oracle的一个更新语句怎么写呢?
- oracle服务启动错误!大家帮我看看,如何解决啊。
- 请教有关oracle8i客户端无法连接服务器端的问题,请看详细内容
- 如何使用pl/sql定时导出数据
- ORA-01033:ORACLE initialization or shutdown in progress
- 根据出生日期得到现在年龄的sql语句
一个Oracle block由三个部分组成,分别是数据块头、自由空间、实际数据三部份组成。 数据块头:主要包含有数据块地址的一些基本信息和段的类型,以及表和包含有数据的实际行的地址。 自由空间:是指可以为以后的更新和插入操作分配的空间,大小由PCTFREE和PCTUSED两个参数影响。 实际数据:是指在行内存储的实际数据。 当创建或者更改任何表和索引的时候,Oracle在空间控制方面使用两个存储参数: PCTFREE:为将来更新已经存在的数据预留空间的百分比。 PCTUSED:用于为插入一新行数据的最小空间的百分比。这个值决定了块的可用状态。可用的块时可以执行插入的块,不可用状态的块只能执行删除和修改,可用状态的块被放在freelist中。 当表中一行的数据不能在一个数据block中放入的时候,这个时候就会发生两种情况,一种是行链接,另外一种就是行迁移了.
行链接产生在第一次插入数据的时候如果一个block不能存放一行记录的情况下。这种情况下,Oracle将使用链接一个或者多个在这个段中保留的block存储这一行记录,行链接比较容易发生在比较大的行上,例如行上有LONG、LONG RAW、LOB等数据类型的字段,这种时候行链接是不可避免的会产生的。 当一行记录初始插入的时候事可以存储在一个block中的,由于更新操作导致行长增加了,而block的自由空间已经完全满了,这个时候就产生了行迁移。在这种情况下,Oracle将会迁移整行数据到一个新的block中(假设一个block中可以存储下整行数据),Oracle会保留被迁移行的原始指针指向新的存放行数据的block,这就意味着被迁移行的ROW ID是不会改变的。 当发生了行迁移或者行链接,对这行数据操作的性能就会降低,因为Oracle必须要扫描更多的block来获得这行的信息。