优化Oracle库表筹算的若干方法2

  来源:天极网





优化筹算

  1、将表数据和索引数据分隔表空间存储

  1.1 表数据和索引为何需求利用独立的表空间

  Oracle激烈建立,任何一个利用法度模范的库表至少需求建立两个表空间,个中之一用于存储表数据,而另一个用于存储表索引数据。因为假如将表数据和索引数据放在一同,表数据的I/O操纵和索引的I/O操纵将孕育发生影响细碎性能的I/O竞争,降低细碎的相应顺从。将表数据和索引数据寄放在分歧的表空间中(如一个为APP_DATA,另一个为APP_IDX),并在物理层面将这两个表空间的数据文件放在分歧的物理磁盘上,就可以防止这种竞争了。

  拥有独立的表空间,就意味着可以独马上为表数据和索引数据供应独立的物理存储参数,而不会孕育发生相互影响,事实成效表数据和索引数据拥有分歧的特征,而这些特征又直接影响了物理存储参数的设定。

  别的,表数据和索引数据独立存储,还会带来数据管理和维护上的方面。如你在迁徙一个业务数据库时,为了降低数据巨细,可以只迁出表数据的表空间,在目标数据库中颠末议定重建索引的体式技俩就可以天生索引数据了。

  1.2 表数据和索引利用分歧表空间的SQL语法

  指定表数据及索引数据存储表空间语句最朴素的方式如下。

  将表数据存储在APP_DATA表空间里:

create table T_ORDER ( ORDER_ID NUMBER(10) not null, …)tablespace APP_DATA;

  将索引数据存储在APP_IDX表空间里:

create index IDX_ORDER_ITEM_ORDER_ID on T_ORDER_ITEM ( ORDER_ID ASC)tablespace APP_IDX;

  1.3 PowerDesigner中若何操纵

  1) 起首,必需建立两个表空间。颠末议定Model->Tablespace...在List of Tablespaces中建立两个表空间:



图 2 建立表空间

  2) 为每张表指定表数据存储的表空间。在筹算区中双击表,翻开Table Properties筹算窗口,切换到options 页,按图 3所示指定表数据的存储表空间。



图 3 指定表数据的存储表空间

  3) 为每个索引指定索引数据的存储表空间。在Table Properties中切换到Indexes页,在这里列出了表的通盘索引,双击需设置表空间的索引,在弹出的Index Properties窗口中切换到Options页,按如下体式技俩指定索引的存储表空间。



图 4 指定索引数据的存储表空间

  将表空间的效果延展一下:一个利用细碎库表的表空间可以停止更风雅的划分。

  起首,假如表中存在LOB典范榜样的字段,有为其指定一个特定的表空间,因为LOB典范榜样的数据在物理存储布局的管理上和一样往常数据的战略有很大的分歧,将其放在一个独立的表空间中,就可便当地设置其物理存储参数了。

  其次,需求思索库表数据的DML操纵特征:依照DML(INSERT,UPDATE,DELETE)操纵频仍水平,将切实其实不孕育发生任何DML操纵的数据放在独立的表空间中,因为极少DML操纵的表可设置切合其特征的物理参数:如PCTFREE可置为0,其BUFFER_POOL指定为KEEP,以便将数据缓存在KEEP数据缓存区中等等,不一而足。

  别的,还可以思索按业务需求将分歧的业务模块分隔寄放,此次假如思索到备份效果。假定我们有一局部业务数据主要性很强,而其他的业务数据主要性绝对较弱,如许就可以将两者分隔存储,以便设置分歧的备份战略。

  当然,无节制的细化表空间也将带来管理上和放置上的巨大,依照业务需求公道地规画表空间以到达管理和性能上的最佳每每需求更多的衡量。




版权声明: 原创作品,应许转载,转载时请务必以超链接方式标明文章 原始出处 、作者信息和本声明。否则将清查法规责任。

原文地址:https://www.cnblogs.com/zgqjymx/p/1976075.html