文档详情

oracle数据仓库优化.pptx

发布:2017-05-06约1.34千字共9页下载文档
文本预览下载声明
Oracle数据仓库开发优化;HWM(High Water Mark) 只读表空间 分区表 隐式转换 索引 并行 压缩;HWM(High Water Mark);凡是对表空间上的数据进行修改的操作都被禁止,包括insert,delete,update,truncate. 有效防止数据被意外删除和修改 可以将不会修改的历史数据所在的表分区移入只读表空间 缩短备份和恢复时间.对只读表空间的数据只做一次备份,而不需要持续进行全量或增量备份.;对于数据仓库而言,查询基本都是大数据量的全表扫描.合理利用分区表,既简化维护历史数据的工作,又能减少查询的io压力. List分区和Range分区比较常用. Hash分区可以通过将不同的分区放置到不同的表空间,优化io. 对于分区表的查询务必在where条件使用合理的分区字段,以使得全表扫描时只对分区扫描. 最常见的问题是循环分区,part_id=mod(month_id,n),只添加month_id=?,未添加part_id=?.导致并未只对分区进行扫描.;create table zyl (v_zyl varchar2(10)); insert into zyl values (201309); select * from zyl where v_zyl=201309; 过滤器谓词为filter(TO_NUMBER(V_ZYL)=201309); 隐式转换导致原本正常的分区键不走分区.增加对分区表进行扫描时的io耗费,严重影响解释计划. 隐式转换同样导致类似的索引问题. 所以谓词类型尽量 匹配好,避免原本的分区扫描或索引扫描失效.;数据仓库中索引应用要比OLTP系统少的多. B-TREE适合字段重复率非常高的表,适合频繁的DML操作的表. 位图索引适合字段重复率非常高的表,而且占用空间非常小,但是不适合高并发DML操作. 不要轻易删除一条你不确定是否会起作用的索引. 复合索引中选择性强的字段放在前面,减少索引范围扫描的成本. 对于分区表,LOCAL索引比GLOBAL索引更适合数据仓库环境,GLOBAL索引只创建在LOCAL索引无法满足条件时. ;并行查询、并行DDL、并行DML HintAlter session Force Parallel表和索引上的并行度系统参数 表和索引的并行是不建议加上的,多使用Hint. 数据仓库中对于过程中hint的并行度设置,必须对整个工作流执行期间数据库繁忙程度有个清晰的认识,降低繁忙期的并行度,增加空闲期的并行度,可以提高整个工作流的效率. 一般开发工作中的查询尽量使用并行度低的hint,在数据库繁忙期使用并行度高的hint会导致查询更慢.;常用的basic压缩模式. 对数据重复率较高的表进行压缩时,能节省较多的表空间.经过压缩,表中所含数据块数目减少.查询中对表进行扫描时,读入的数据块的数目会少很多,读io性能会显著提升. 数据写入压缩表时,系统开销会略有提升,写入性能略有下降,但是差距并不明显. 对于成熟的数据仓库来说,数据表一经插入基本不会进行修改,所以压缩是一种不错的选择.由于查询性能的提升,工作流的执行效率反而可能会提升.
显示全部
相似文档