在Oracle 11gR2版本中,Oracle数据库引入了一个新的特性——延迟段创建(Deferred Segment Creation)。这个特性主要是为了优化空间管理,特别是在处理大量空表时,可以有效地避免不必要的磁盘空间占用。延迟段创建意味着在创建一个新表时,Oracle默认不会立即为这个空表分配段(SEGMENTS),即不会分配存储空间。只有当表中开始插入数据时,系统才会自动为表分配段。 以下是对这个特性的详细解释和操作演示: 我们可以查看Oracle 11gR2的版本信息,确认数据库版本是否支持此特性。例如: ``` SQL> SELECT * FROM V$VERSION; ``` 创建一个普通表`T_TEST_1`,默认情况下,Oracle不会为其分配段: ```sql SQL> CREATE TABLE T_TEST_1(ID NUMBER,NAME VARCHAR2(10)); ``` 查询`USER_SEGMENTS`视图,可以发现`T_TEST_1`没有对应的段信息: ```sql SQL> SELECT SEGMENT_NAME FROM USER_SEGMENTS WHERE SEGMENT_NAME='T_TEST_1'; ``` 在创建表时,我们可以通过`SEGMENT CREATION`参数控制段的创建时机。例如,设置`SEGMENT CREATION IMMEDIATE`将强制立即创建段: ```sql SQL> CREATE TABLE T_TEST_2(ID NUMBER,NAME VARCHAR2(10)) SEGMENT CREATION IMMEDIATE; ``` 此时,`T_TEST_2`已经创建了段: ```sql SQL> SELECT SEGMENT_NAME FROM USER_SEGMENTS WHERE SEGMENT_NAME LIKE 'T_TEST%'; ``` 而设置`SEGMENT CREATION DEFERRED`则会在需要时才创建段: ```sql SQL> CREATE TABLE T_TEST_3(ID NUMBER,NAME VARCHAR2(10)) SEGMENT CREATION DEFERRED; ``` 在这种情况下,`T_TEST_3`没有段,但当我们向表中插入数据时,Oracle会自动创建段: ```sql SQL> INSERT INTO T_TEST_3 VALUES(1,'STREAM'); SQL> SELECT SEGMENT_NAME FROM USER_SEGMENTS WHERE SEGMENT_NAME LIKE 'T_TEST%'; ``` 此外,我们还可以通过`ALLOCATE EXTENT`语句手动为延迟创建的表分配段: ```sql SQL> ALTER TABLE T_TEST_3 ALLOCATE EXTENT; SQL> SELECT SEGMENT_NAME FROM USER_SEGMENTS WHERE SEGMENT_NAME LIKE 'T_TEST%'; ``` 这个特性对于那些预期可能为空或数据量较小的表非常有用,因为它可以节省存储资源。然而,这个特性也可能引发一些问题,比如题目中提到的"导致EXP导不出空表"的问题。这可能是由于导出工具EXP在导出空表时,如果没有预先分配的段,可能无法识别该表,从而无法正确导出。 为了解决这个问题,有几种可能的解决方案: 1. 在导出前,手动为这些空表分配段,如使用`ALTER TABLE ALLOCATE EXTENT`。 2. 在创建表时指定`SEGMENT CREATION IMMEDIATE`,确保每个表都立即创建段。 3. 如果是临时性的问题,可以考虑在导出时跳过这些特定的空表,然后在导入后单独处理。 Oracle 11gR2的延迟段创建特性旨在提高空间利用率,但在实际应用中可能会遇到一些不兼容或意外的情况,需要根据具体需求进行调整。理解并掌握这个特性,可以帮助数据库管理员更有效地管理和优化数据库的存储。
- 粉丝: 1
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Java基于springboot+vue的保险业务管理系统源码+数据库+文档说明
- 数据分析-10-扒一扒CXK微博100万+转发量的真假流量粉(包含数据和代码)
- 机械设计除尘降温消毒除臭设备sw16可编辑非常好的设计图纸100%好用.zip
- 2019可运营完整版PHP萌乐游戏代练系统V2.0源码 (完整版可运营去后门)
- 数据分析-11-淘宝李子柒螺蛳粉店铺及评论分析(包含数据和代码)
- 数据分析-12-某电子产品销售数据分析报告及RFM模型(包含数据和代码)
- 数据挖掘/机器学习-01-泰坦尼克号获救预测 Titanic(包含数据和代码)
- 基于 PyQt 的 XSS 漏洞检测系统设计与实现
- 卷积神经网络 CIFAR-10 数据集 例子
- 贫困生资助系统配套资源
- c语言考试必考题型重点复习
- c语言重点习题作业解析
- 机械设计倍速链组装线sw16可编辑非常好的设计图纸100%好用.zip
- 机械设计车四方机床(工程图BOM单)sw12可编辑非常好的设计图纸100%好用.zip
- 机器学习-02-LoanPrediction(贷款预言)(包含代码和数据)
- 圣诞树html网页代码
评论0