WEB开发网
开发学院数据库Oracle 优化Oracle库表设计的若干方法 阅读

优化Oracle库表设计的若干方法

 2006-08-06 12:00:14 来源:WEB开发网   
核心提示: 在ORDER_ID列上创建一个普通未压缩的B-Tree索引,则索引数据的物理上的存储形式如下:图 11 未进行压缩的索引存储ORDER_ID的重复值在索引块中重复出现,优化Oracle库表设计的若干方法(9),这样不但增加了存储空间的需求,而且因为查询时需要读取更多的索引数据块,为ORDE

在ORDER_ID列上创建一个普通未压缩的B-Tree索引,则索引数据的物理上的存储形式如下:

图 11 未进行压缩的索引存储

ORDER_ID的重复值在索引块中重复出现,这样不但增加了存储空间的需求,而且因为查询时需要读取更多的索引数据块,所以查询性能也会降低=。让我们来看一下经过压缩后索引数据的存储方式:

图 12 进行压缩的索引存储

压缩型的索引消除了重复的索引值,将相同索引列值所关联的ROWID存储在一起。这样,不但节省了存储空间,查询效率也提高了,真可谓两全齐美了。

对象T_ORDER和T_ORDER_ITEM这样的主从表进行查询时,一般情况下,我们都必须通过外键查询出子表所有关联的记录,所以在子表的外键上建立压缩型的索引是非常适合的。

3.2 压缩型索引的SQL语句

创建压缩型索引的SQL语句非常简单,在T_ORDER_ITEM的ORDER_ID上创建压缩型索引的SQL如下所示:

create index IDX_ORDER_ITEM_ORDER_ID on T_ORDER_ITEM ( ORDER_ID ASC) compress;

需要在创建索引的语句后附上compress关键字就可以了。

3.3 PowerDesigner如何创建压缩型索引

1) 打开T_ORDER_ITEM表的Table Properties的窗口,切换到Indexes页,为ORDER_ID列创建一个名为IDX_ORDER_ITEM_ORDER_ID的索引。

2) 双击IDX_ORDER_ITEM_ORDER_ID弹出Index Properties窗口,切换到Options页,按图 13将索引设置为压缩型:

图 13 将索引指定为压缩型

上一页  4 5 6 7 8 9 10  下一页

Tags:优化 Oracle 设计

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接