提高商业智能环境中DB2查询的性能-专用于数据仓库和B 的查询调优方法(2)

方法 1:在事实表与三个维度表之间定义适当的参照完整性约束

在 DB2 中,可以定义主键和外键约束,以允许数据库管理器对数据实施参照完整性约束。外键等参照约束还有助于提高性能。例如,如果修改 清单 2 中的查询中的子表达式 TMP1,去掉 PRODUCT_DIM 表上的本地谓词,那么,如果在 SALES_FACT.PRODUCT_ID 上创建一个外键约束,则优化器会消除 SALES_FACT 和 PRODUCT_DIM 之间的连接。如果创建了外键约束,则那样的连接被认为是无损的(lossless),可以从查询中移除,因为查询需要从 PRODUCT_DIM 中读取的数据在 SALES_FACT 表中都有,在 PRODUCT_DIM 与 SALES_FACT 的连接中,只引用到 PRODUCT_DIM 的主键,而没有引用 PRODUCT_DIM 的其它列。

在 星型模式布局 小节中描述的星型模式中,维度中存在的每个 DATE_ID、PRODUCT_ID 和 STORE_ID 在事实表中也必须存在。每个 ID 在维度表中都是惟一的,由为每个维度表创建的主键约束标识。因此,事实表保存产品被售出时的历史数据(定量)。下面的表描述了在这种模式中应该创建的主键和外键。维度中的每个惟一性 ID 在事实表中都有一个相应的外键约束。

PK/FK 目标表(列)
DATE_DIM DATE_ID PK
PRODUCT_DIM PRODUCT_ID PK
STORE_DIM STORE_ID PK
SALES_FACT DATE_ID FK DATE_DIM (DATE_ID)
SALES_FACT PRODUCT_ID FK PRODUCT_DIM (PRODUCT_ID)
SALES_FACT STORE_ID FK STORE_DIM (STORE_ID)

步骤 1A:对事实表执行 ALTER 操作,创建它与维度表之间的适当的 FK 关系。通过上面的表查看事实表与维度表之间的关系。再创建 SALES_FACT 列(DATE_ID,STORE_ID)上的一个索引,以便与 方法 3 中描述的 MDC 方法进行比较,方法 3 使用 (DATE_ID,STORE_ID) 上的一个块索引。

清单 23. 在 SALES_FACT 表中创建外键约束和索引 db2 -tvf alter_sales_fact.txt -z alter_sales_fact.log

清单 24.alter_sales_fact.txt 文件的内容 CONNECT TO DSS_DB;
ALTER TABLE SKAPOOR.SALES_FACT ADD CONSTRAINT DATE_DIM_FK FOREIGN KEY
(DATE_ID) REFERENCES DATE_DIM;
ALTER TABLE SKAPOOR.SALES_FACT ADD CONSTRAINT STORE_DIM_FK FOREIGN KEY
(STORE_ID) REFERENCES STORE_DIM;
ALTER TABLE SKAPOOR.SALES_FACT ADD CONSTRAINT PRODUCT_DIM_FK FOREIGN KEY
(PRODUCT_ID) REFERENCES PRODUCT_DIM;
CREATE INDEX SKAPOOR.IND_DATE_STORE ON SKAPOOR.SALES_FACT (DATE_ID, STORE_ID);
CONNECT RESET;

步骤 1B:收集关于所有表的统计信息:

优化器根据统计信息适当地计算备选查询执行计划(QEP)的成本,并选择最佳计划。在继续下一步骤之前,我们需要收集一些统计信息。

清单 25. 收集关于所有表的统计信息 db2 -tvf runstats.ddl -z runstats.log

清单 26. runstats.ddl 的内容 CONNECT TO DSS_DB;
RUNSTATS ON TABLE SKAPOOR.DATE_DIM WITH DISTRIBUTION AND INDEXES ALL;
RUNSTATS ON TABLE SKAPOOR.STORE_DIM WITH DISTRIBUTION AND INDEXES ALL;
RUNSTATS ON TABLE SKAPOOR.PRODUCT_DIM WITH DISTRIBUTION AND INDEXES ALL;
RUNSTATS ON TABLE SKAPOOR.SALES_FACT WITH DISTRIBUTION AND INDEXES ALL;
CONNECT RESET;

时间: 2024-08-18 02:15:02

提高商业智能环境中DB2查询的性能-专用于数据仓库和B 的查询调优方法(2)的相关文章

一种正规的性能调优方法──基于等待的调优

企业java应用的性能调优是一项艰巨的.有时甚至是徒劳的任务,这是由现代 应用的复杂性和缺少正规的调优方法导致的.现代企业应用与十年前的应用相比 差距很大,如今这些应用支持多输入.多输出.复杂的框架和业务处理引擎.而 十年之前,基于web的企业应用只是通过网络浏览器获得输入信息,然后与数据库 或者遗留系统交互进行后台处理,最后把输出结果返回给浏览器(HTML).现在 ,输入信息可以来自HTML浏览器.富客户端.移动设备或者网络服务,它可以跨 越运行在不同架构下的servlets或者门户容器,这反

《DB2性能管理与实战》——2.6 DB2 pureScale环境中内存管理

2.6 DB2 pureScale环境中内存管理 DB2性能管理与实战 本节将要介绍与pureScale特性相关的内存管理,可以对比前面的单节点环境下的内存管理,来分析它们之间的异同点.本节为学习后续章节中的相关案例奠定了基础. 2.6.1 集群高速缓存设施 在DB2 pureScale环境中,又引入了集群高速缓存设施(CF),CF将不同内存堆用于以下用途. 1.组缓冲池内存 组缓冲池内存被用于DB2pureScale实例的组缓冲池.如果以一致方式将此类型的内存用至最大已配置能力,那么可能会对性

SAP应用程序和DB2 pureScale Feature性能考虑因素

工作负载特征和集群缓存工具 (CF) CF 在 DB2 pureScale 实例中发挥着http://www.aliyun.com/zixun/aggregation/33179.html">重要作用,因为它管理所有 DB2 pureScale 成员之间的数据同步和锁,以维护数据一致性.要帮助在 DB2 pureScale 环境中实现最佳的性能,CF 必须能够有效地处理从成员传入的请求,以便在这些成员上继续执行语句.传入的 CF 请求量取决于对数据库运行的工作负载的各种特征.例如,具有高比

DB2 9 中 15 个 pureXML 性能最佳实践

原文http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0610nicola/   DB2 9 中 15 个 pureXML 性能最佳实践 Matthias Nicola (mnicola@us.ibm.com), DB2/XML Performance, IBM Silicon Valley Laboratory 简介: DB2 9 引入了 pureXML 支持,这意味着 XML 数据将以其固有的层次格式被存储和查

DB2 9中15个pureXML性能最佳实践

DB2 9引入了pureXML支持,这意味着XML数据将以其固有的层次格式被存储和查询.为了查询 XML数据,DB2 提供了两种语言,SQL/XML和XQuery.此外,DB2 9 还具有成熟的XML 索引功能和对 XML 模式验证的支持.虽然大多数已有的关于DB2性能的指南同样适用于XML数据,但是本文还将提供其他一些特定于XML的性能方面的提示. 简介 DB2 9中的pureXML支持为管理XML数据提供了有效的.多方面的功能.对于很多XML应用程序而言,性能是高度优先考虑的一个方面.DBA

使用IBM性能分析工具解决生产环境中的性能问题

序言 企业级应用系统软件通常有着对并发数和响应时间的要求,这就要求大量的用户能在高响应时间内完成业务操作.这两个性能指标往往决定着一个应用系统软件能否成功上线,而这也决定了一个项目最终能否验收成功,能否得到客户认同,能否继续在一个行业发展壮大下去.由此可见性能对于一个应用系统的重要性,当然这似乎也成了软件行业的不可言说的痛 -- 绝大多数的应用系统在上线之前,项目组成员都要经历一个脱胎换骨的过程. 生产环境的建立包含众多方面,如存储规划.操作系统参数调整.数据库调优.应用系统调优等等.这几方面互

【MOS】RAC 环境中 gc block lost 和私网通信性能问题的诊断 (文档 ID 1674865.1)

[MOS]RAC 环境中 gc block lost 和私网通信性能问题的诊断 (文档 ID 1674865.1) 文档内容 症状   概要:   场景:   原因:   Global Cache Block Loss诊断指南 更改 原因 解决方案 参考 适用于: Oracle Database - Enterprise Edition - 版本 9.2.0.1 和更高版本本文档所含信息适用于所有平台Oracle Clusterware & Oracle Real Application Clu

监视WebSphere Portal环境中的性能

帮助您了解监视和度量 WebSphere Portal 环境中的性能问题的一些基础的指南 要优化 WebSphere Portal 环境以实现最佳性能,您需要知道哪些方面需要优化.本文讨论的监视方法涵盖 WebSphere Portal 的几个重要方面.它们可以帮助您查看 WebSphere Portal 环境的真实行为,并最终确定瓶颈和潜在问题.本文旨在概述监视方法,而不是深入研究任何特定的方法.本文为大多数负责解决此类问题的人员提供了一个很好的起点.我们的目标是向您介绍足够多的方法,以便您能

提高NodeJS中SSL服务的性能_node.js

在浏览互联网时,我们都知道,通过SSL进行加密是非常重要的.在贝宝(PayPal),安全是我们的首要任务.我们使用端到端的加密,不仅只是我们的公共网站,对于我们的内部服务调用也同样如此.SSL加密技术将在很大程度上影响node.js的性能.我们已经花时间调整我们的对外服务,并充分地利用他们.下面是一些我们发现能显著地提高SSL对外性能的SSL配置调整清单. SSL密码 开箱即用,Node.js 的SSL使用一组非常强大的密码算法.特别是,迪菲赫尔曼密钥交换和椭圆曲线算法是极其昂贵的.而且当你在默