程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2 優化器中使用分布統計信息的正確操作方案描述(1)

DB2 優化器中使用分布統計信息的正確操作方案描述(1)

編輯:DB2教程

我們今天主要向大家講述的是在 DB2 優化器中使用分布統計信息的正確操作方案,我們大家都知道DB2 數據庫的優化器是一種基於成本的優化器。它主要是根據表和索引的相關統計信息作出決策。

DB2 在生成統計信息時,不但能提供基本統計信息,還允許創建所謂的分布統計信息。本文解釋什麼是分布統計信息、分布統計信息在哪些情況下尤為重要,以及應用程序開發人員應該考慮些什麼,才能使 DB2 優化器創建有效的訪問計劃。

簡介

為了執行查詢或 DML 語句INSERT、UPDATE、DELETE),DB2 必須創建一個訪問計劃access plan)。訪問計劃定義按什麼順序訪問表,使用哪些索引,以及用何種連接join)方法來關聯數據。好的訪問計劃對於 SQL 語句的快速執行至關重要。DB2 優化器可以創建訪問計劃。這是一種基於成本的優化器,這意味著它是根據表和索引的相關統計信息來作出決策的。

DB2 在生成統計信息時,不但能提供基本統計信息,還允許創建所謂的分布統計信息。不但數據庫管理員要理解分布統計信息,而且應用程序開發人員也要理解分布統計信息。應用程序開發人員必須小心謹慎,因為在某些情況下分布統計信息對於 DB2 優化器來說非常重要。

主變量或參數標記在 Java 中為 java.sql.PreparedStatement)的使用可能會造成阻礙,使優化器無法最大限度地利用分布統計信息。本文解釋什麼是分布統計信息、分布統計信息在哪些情況下尤為重要,以及應用程序開發人員應該考慮些什麼,才能使 DB2 優化器創建有效的訪問計劃。

基本統計信息和分布統計信息

在研究分布統計信息之前,我們先來看看基本統計信息,只要執行 RUNSTATS 即可收集這些表的相關統計信息。

表的相關統計信息:

當前使用的頁面數

包含記錄行的頁面數

溢出的行數

表中的行數基數)

對於 MDC 表,還有包含數據的塊block)數

表中各列的相關統計信息:

列的基數

列的平均長度

列中第二大的值

列中第二小的值

列中 NULL 值的個數

通常,執行 RUNSTATS 時,不但可以收集到關於表的統計信息,而且還可以收集到相應的索引的相關統計信息。要了解為索引而收集的統計信息,請參閱 DB2 Administration Guide: Performance - Statistical information that is collected。


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