[文章摘要] :Oracle在数据仓库的性能优化方面,提供了很多的特性和工具,除了常规的分区、并行以及位图索引,还有物化视图、Dimension,位图连接索引等。利用这些特性,可以在不改写应用的情况下,由DBA在数据库层面来进行查询性能优化。本文通过几个具体的例子,简单演示了利用物化视图等技术进行查询优化的方法。
[关键字]
数据库 数据仓库 物化视图 查询重写 Dimension 位图连接索引
一、运行环境
本文采用一个简单的星型模型的示例数据,只包含一个事实表fact_sales和一个时间维度表time_dim,具体的生成脚本请见附录。SQL> select * from v$version; BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod PL/SQL Release 10.2.0.1.0 - Production CORE 10.2.0.1.0 Production TNS for 32-bit Windows: Version 10.2.0.1.0 - Production NLSRTL Version 10.2.0.1.0 - Production SQL> show parameter query NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ query_rewrite_enabled string TRUE query_rewrite_integrity string TRUSTED SQL> conn / as sysdba 已连接。 SQL> create user ning identified by ning; 用户已创建。 SQL> grant dba to ning; 授权成功。 SQL> conn ning/ning 已连接。