2007-01-04

保持Oracle数据优良性能的若干诀窍

来源: 本站收集整理 作者:佚名 评论 0 条
 

如今,Oracle数据库以其高可靠性、安全性、可兼容性,得到越来越多的企业的青睐。如何使Oracle数据库保持优良性能,这是许多数据库治理员关心的问题,本文作者建议不妨针对以下几个方面加以考虑.

如今,Oracle数据库以其高可靠性、安全性、可兼容性,得到越来越多的企业的青睐。如何使Oracle数据库保持优良性能,这是许多数据库治理员关心的问题,本文作者建议不妨针对以下几个方面加以考虑。

分区

根据实际经验,在一个大数据库中,数据库空间的绝大多数是被少量的表所占有。为了简化大型数据库的治理,改善应用的查询性能,一般可以使用分区这种手段。所谓分区就是动态地将表中的记录分离到若干不同的表空间上,使数据在物理上被分割开来,便于维护、备份、恢复、事务及查询性能。当使用的时候可建立一个连接所有分区的视图,使其在逻辑上仍以一个整体出现。

1. 建立分区表

Create table Employee ( 

EmpNo varchar2(10) primary key, 

Name varchar2(30), 

DeptNo Number(2) 

) 

Partition by range(DeptNo) 

( partition PART1 values less than (11) 

tablespace PART1_TS, 

partition PART2 values less than (21) 

tablespace PART2_TS, 

partition PART3 values less than (31) 

tablespace PART3_TS 

partition PART4 values less than (MAXvalue) 

tablespace PART4_TS 

);

表Employee依据DeptNo列进行分区。

2. 分区索引

Create index Employee_DeptNo on Employee(DeptNo) local ( 

partition PART1 tablespace PART1_NDX_TS, 

partition PART2 tablespace PART2_NDX_TS, 

partition PART3 tablespace PART3_NDX_TS, 

partition PART4 tablespace PART4_NDX_TS, 

);

当分区中出现许多事务并且要保证所有分区中的数据记录的惟一性时采用全局索引,在建立全局索引时,Global子句答应指定索引的范围值,这个范围值可以不同于表分区的范围值。只有建立局部索引才会使索引分区与表分区间建立起一一对应关系。因此,在大多数情况下,应该使用局部索引分区。若使用了此索引,分区就能够很轻易地将索引分区与表分区建立关联,局部索引比全局索引更易于治理。

3. 分区治理

根据实际需要,还可以使用Alter table 命令来增加、删除、交换、移动、修改、重命名、划分、截短一个已存在分区的结构。

重建索引

假如表中记录频繁地被删除或插入,尽管表中的记录总量保持不变,索引空间的使用量会不断增加。虽然记录从索引中被删除,但是该记录索引项的使用空间不能被重新使用。因此,假如表变化不定,索引空间量会不断增加,不论表中记录数量是否增加,只是因为索引中无效空间会增加。

要回收那些曾被删除记录使用的空间,需要使用Alter index rebuild 命令。可以做一个定期运行的批处理程序,来重建最活动表的索引。这个批处理程序可以在空闲时运行,以避免该程序与其他应用程序冲突。若能坚持索引的这一程序规划,便可以及时回收那些未使用空间,提高空间利用率。
共3页: 上一页 1 [2] [3] 下一页

(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:关于提高Oracle数据库性能的四个误区  
下一篇:oracle系统紧急故障处理方法
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号