oracle 第10章模式对象.ppt
文本预览下载声明
10.4.2设置溢出存储 所谓的溢出存储是指将索引化表中每个记录分成两部分,其中一部分(包含主键列)保存在索引化表自身中(以索引的树状结构存储,称为索引条目部分),而另一部分保存在溢出表空间中(以标准表的堆结构存储,称为溢出部分)。 若要启用溢出存储功能,必须在创建索引化表时指定OVERFLOW子句指定溢出部分的存储空间,同时使用PCTTHRESHOLD子句或INCLUDING子句来设置溢出方式。 用PCTTHRESHOLD设置溢出存储 示例 CREATE TABLE iot_pct( ID NUMBER PRIMARY KEY, col1 VARCHAR2(20), col2 VARCHAR2(10), col3 NUMBER) ORGANIZATION INDEX TABLESPACE USERS PCTTHRESHOLD 30 OVERFLOW ABLESPACE ORCLTBS1; 使用PCTTHRESHOLD子句设置溢出比例时注意: 溢出存储是以列为单位,一个列要么全部保留在索引条目中,要么全部溢出; 列的顺序主要取决于创建表时的列的定义顺序,但是Oracle会自动将主键列移动到非主键列的前面,保证主键列保存在索引条目中; PCTTHRESHOLD子句所指定的比例必须包含索引化表中所有主键列。 用INCLUDING设置溢出存储 示例 CREATE TABLE iot_pct_include( ID NUMBER PRIMARY KEY, col1 VARCHAR2(20), col2 VARCHAR2(10), col3 NUMBER) ORGANIZATION INDEX TABLESPACE USERS PCTTHRESHOLD 30 INCLUDING col3 OVERFLOW TABLESPACE ORCLTBS1; 10.4.3修改索引化表 修改索引数据段与溢出数据段 重建索引化表 将索引化表转换为普通表 修改索引数据段与溢出数据段 使用ALTER TABLE语句可以对索引化表中索引数据段和溢出数据段进行修改,包括存储参数和溢出方式的修改。其中OVERFLOW关键字之前的参数都是针对索引条目数据段的,而OVERFLOW之后的参数都是针对溢出数据段的。 ALTER TABLE new_student INITRANS 4 OVERFLOW INITRANS 6; ALTER TABLE iot_pct_includ PCTTHRESHOLD 15 INCLUDING col2; 如果原来的索引化表中没有使用溢出存储功能,可以通过ALTER TABLE…ADD OVERFLOW为它应用溢出存储功能。 ALTER TABLE student ADD OVERFLOW TABLESPACE ORCLTBS2 重建索引化表 在不断对索引化表进行更新操作之后,将在索引化表中产生许多不连续的存储碎片,降低索引化表的查询效率。可以使用ALTER TABLE…MOVE语句重建索引化表,以消除其中的存储碎片。 重建索引化表可以在原来的表空间中进行,也可以在新的表空间中进行。 ALTER TABLE new_student MOVE INITRANS 10; ALTER TABLE iot_pct_include MOVE TABLESPACE ORCLTBS2OVERFLOW TABLESPACE ORCLTBS3 将索引化表转换为标准表 使用Oracle中的EMPORT和IMPORT工具,将索引化表中的数据全部导出,然后再重新导入到一个标准表中。 使用CREATE TABLE…AS SELECT语句,通过对索引化表的查询来创建一个标准表。 10.4.4利用OEM管理索引化表 创建索引化表 索引化表的其他管理 10.5分区表与分区索引 分区概述 创建分区表 创建分区索引 维护分区表与分区索引 分区概述 分区概念 所谓的分区是指将一个巨型表或巨型索引分成若干独立的组成部分进行存储和管理,每一个相对小的、可以独立管理的部分,称为原来表或索引的分区。 每个分区都具有相同的逻辑属性,但物理属性可以不同。如具有相同列、数据类型、约束等,但可以具有不同的存储参数、位于不同的表空间等。 分区后,表中每个记录或索引条目根据分区条件分散存储到不同分区中 。 分区条件 表的大小超过2GB 要对一个表进行并行DML操作,必须分区 为了平衡硬盘的I/O操作,将一个表分散存储在不同的表空间中,必须对它进行分区 如果需要将表一部分设置为只读,另一部分为可更新的,必
显示全部