[文章摘要] :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
已连接。
