程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> 提高商業智能環境中的DB2查詢性能

提高商業智能環境中的DB2查詢性能

編輯:DB2教程
 

本文主要討論可以使決策支持系統(DSS)中的大型查詢高效地執行的一些方法。這些查詢通常都是訪問較多數據的單純 select 查詢。下面是我們要討論的一些方法:

1、建立適當的參照完整性約束;

2、使用物化查詢表(MQT)將表復制到其它數據庫分區,以允許非分區鍵列上的合並連接;

3、使用多維集群(MDC);

4、使用表分區(DB2® 9 的新功能);

5、結合使用表分區和多維集群;

6、使用 MQT 預先計算聚合結果。

本文中的例子針對 Windows 平台上運行的 DB2 9。但是,其中的概念和信息對於任何平台都是有用的。由於大多數商業智能(BI)環境都使用 DB2 Database Partitioning Feature(DPF,DB2 數據庫分區特性),我們的例子也使用 DPF 將數據劃分到多個物理和邏輯分區之中。

數據庫布局和設置

本節描述用於在我們的系統上執行測試的數據庫的物理和邏輯布局。

星型模式布局

本文使用如下所示的星型模式:

清單 1. 星型模式

其中的表的定義如下:

事實表 SALES_FACT 包含 2006 年的總體銷售信息。它包括產品售出日期、產品 ID、銷售該產品的商店的 ID、售出的特定產品的數量,以及產品的價格。事實表中還添加了 TRANSACTION_DETAILS 列,以便在從事實表中訪問數據時生成更多的 I/O。

1、維度表 DATE_DIM 包含商店開放期間的惟一的日期和相應的月份、季度和年份信息。

2、維度表 PRODUCT_DIM 包含公司所銷售的不同產品。每種產品有一個惟一的產品 ID 和一個產品描述、型號以及質地。

3、維度表 STORE_DIM 包含不同的商店 ID 和商店的位置、所屬街區以及所屬區域等信息。

數據庫分區信息

各表都位於它自己的分區組中。3 個維度表都比較小,所以它們位於一個數據庫分區上。而事實表則跨 4 個分區。

表空間信息

緩沖池信息

本文中的測試所使用的默認緩沖池是 IBMDEFAULTBP,該緩沖池由 1,000 個 4K 的頁面組成。在本文的測試中,所有表空間共享這個緩沖池。在通常的 BI 環境中,會創建不同的緩沖池。

主查詢

下面的查詢用於測試本文中討論的各種不同的方法。該查詢執行一個向外連接,比較二月份和十一月份 10 家商店的銷售信息。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved