区段(extent)是在表空间中由某个段所使用的一块(磁盘)空间,它是一组连续的Oracle数据块.Oracle引入区段是为了提高系统的效率,因为利用区段(extent)来进行磁盘空间的分配可以大大地减少磁盘分配的次数。
另外,Oracle的磁盘分配算法是一个递归算法,而递归算法效率比较低,减少磁盘分配次数就等于减少了该递归算法使用的次数。
那么Oracle在什么情况下分配区段?如下:
*当一个段(segment)被创建时。
*当一个段被扩展时
*当一个段被改变时
那么什么时候Oracle回收一个区段呢?如下:
*当一个段被删除时
*当一个段被改变时
*当一个段被截断时
当一个表空间被创建时,在该表空间中的数据文件就包含了一个头,这个头就是数据文件的第一个或前几个数据块。
随着段的创建,Oracle使用表空间中的空闲区段为这些段分配磁盘空间。由某个段所使用的连续磁盘空间被称为使用区段,当一些段释放了磁盘空间时,这些释放的区段就被添加到所在表空间中可以使用的空闲区段池中。
整理自 何明《Oracle DBA基础培训教程》