Oracle数据块原理深入剖析-入门基础时间:2009-03-1000:00来源:IT168bitsCN编辑字体:[大中小]数据块(OracleDataBlocks),本文简称为“块”,是Oracle最小的存储单位,Oracle数据存放在“块”中
一个块占用一定的磁盘空间
特别注意的是,这里的“块”是Oracle的“数据块”,不是操作系统的“块”
Oracle每次请求数据的时候,都是以块为单位
也就是说,Oracle每次请求的数据是块的整数倍
如果Oracle请求的数据量不到一块,Oracle也会读取整个块
所以说,“块”是Oracle读写数据的最小单位或者最基本的单位
块的标准大小由初始化参数DB_BLOCK_SIZE指定
具有标准大小的块称为标准块(StandardBlock)
块的大小和标准块的大小不同的块叫非标准块(NonstandardBlock)
同一数据库中,Oracle9i及以上版本支持同一数据库中同时使用标准块和非标准块
Oracle允许指定5种非标准块(NonstandardBlock)
操作系统每次执行I/O的时候,是以操作系统的块为单位;Oracle每次执行I/O的时候,都是以Oracle的块为单位
Oracle数据块大小一般是操作系统块的整数倍
数据块的格式(DataBlockFormat)块中存放表的数据和索引的数据,无论存放哪种类型的数据,块的格式都是相同的,块由块头(header/CommonandVariable),表目录(TableDirectory),行目录(RowDirectory),空余空间(FreeSpace)和行数据(RowData)五部分组成,如下图所示
块头(header/CommonandVariable):存放块的基本信息,如:块的物理地址,块所属的段的类型(是数据段还是索引段)
表目录(TableDirectory):