如何使Oracle数据库保持优良性能(一)

日期: 2008-06-14 作者:袁爽 来源:TechTarget中国


  问:如何使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 命令。可以做一个定期运行的批处理程序,来重建最活动表的索引。这个批处理程序可以在空闲时运行,以避免该程序与其他应用程序冲突。若能坚持索引的这一程序规划,便可以及时回收那些未使用空间,提高空间利用率。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

袁爽
袁爽

相关推荐