程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2表統計信息解析

DB2表統計信息解析

編輯:DB2教程

本文將為您介紹DB2數據庫中如何統計表的各類信息的說明,供您參考,如果您對此有興趣的話,不妨一看,相信對您會有所幫助。

DB2提供了3個命令工具,重組和分析table中的數據:
REORGCHK
REORG
RUNSTAT

在(一)中收集了對象的統計信息,這裡,可以用這些統計信息來診斷對象的物理存儲了。

2.REORGCHK ,診斷對象的物理存儲

>>-REORGCHK----+-------------------------------+----------------------------------+<<
| |-UPDATE--| | | .-USER------- .--|
'--+-CURRENT-+---STATISTICS--' '-ON TABLE--+-SYSTEM-----+--'
+-ALL--------+
'-table-name-'

在UDB的V8版本中增加了on schema 的選項。

UPDATE STATISTICS:先調用RUNSTATS來對table進行分析,
然後根據分析的統計信息診斷是否需要重組table
CURRENT STATISTICS:使用現有的統計信息診斷是否需要重組table

ON TABLE USER: 當前USER的所有table
ON TABLE SYSTEM:SYSTEM的所有table
ON TABLE ALL: 當前db的所有table
ON TABLE table-name:指定名稱的table

我們分析SYSIBM.SYSTABLES,看看具體的執行結果:

db2 => reorgchk update statistics on table SYSIBM.SYSTABLES

執行 RUNSTATS ....

表統計信息:

F1: 100 * OVERFLOW / CARD < 5
F2: 100 * (Effective Space Utilization of Data Pages) > 70
F3: 100 * (Required Pages / Total Pages) > 80

SCHEMA NAME CARD OV NP FP ACTBLK TSIZE F1 F2 F3 REORG
----------------------------------------------------------------------------------------
SYSIBM SYSTABLES 2988 0 290 290 - 4774824 0 100 100 ---
----------------------------------------------------------------------------------------

索引統計信息:

F4: CLUSTERRATIO 或正常化的 CLUSTERFACTOR > 80
F5: 100 * (KEYS * (ISIZE + 9) + (CARD - KEYS) * 5) / ((NLEAF - NUM EMPTY LEAFS) * INDEXPAGESIZE) > 50
F6: (100 - PCTFREE) * ((INDEXPAGESIZE - 96) / (ISIZE + 12)) ** (NLEVELS - 2) * (INDEXPAGESIZE - 96)
/ (KEYS * (ISIZE + 9) + (CARD - KEYS) * 5) < 100
F7: 100 * (NUMRIDS DELETED / (NUMRIDS DELETED + CARD)) < 20
F8: 100 * (NUM EMPTY LEAFS / NLEAF) < 20

SCHEMA NAME CARD LEAF ELEAF LVLS ISIZE NDEL KEYS F4 F5 F6 F7 F8 REORG
-------------------------------------------------------------------------------------------------
表:SYSIBM.SYSTABLES
SYSIBM IBM00 2988 55 0 2 27 42 2988 95 47 3 1 0 -*---
SYSIBM IBM137 2988 18 0 2 4 52 2845 98 51 9 1 0 -----
SYSIBM IBM21 2988 5 0 2 3 26 3 99 73 24 0 0 -----
SYSIBM IBM22 2988 5 0 2 3 22 1 100 72 24 0 0 -----
SYSIBM IBM23 2988 5 0 2 3 2 1 100 72 24 0 0 -----
SYSIBM IBM78 2988 62 0 2 33 17 2988 95 49 2 0 0 -*---
-------------------------------------------------------------------------------------------------

CLUSTERRATIO 或正常化的 CLUSTERFACTOR(F4)將指示索引需要
REORG,該索引與基本表不在相同的序列中。當在表中定義了多個索引時,一個或多個索引
可能被標記為需要 REORG。指定 REORG 順序的最重要索引。

使用 ORGANIZE BY 子句和相應的維索引定義的表的名稱有 '*'
後綴。維索引的基數等價於表的“活動的塊數”統計信息。

先來說明一下上面的信息:

CARD:基表中的數據行數
OV(OVERFLOW): 遷移行的數量
NP(NPAGES): 包含數據的page的數量
FP(FPAGES): 該表總共分配的page數量
TSIZE:table的實際數據的大小,以字節為單位。
TABLEPAGESIZE:table所在表空間的page size
F1: 處理溢出行。在溢出行超過總行數的5%時,該報告建議對table進行重組。
F2:處理空間使用率。在TSIZE小於等於該表分配總空間的70%時,該報告建議對table進行重組。
F3:處理空白頁。所謂空白頁,就是沒有數據的頁。當table中空白頁大於20%時,該報告建議對table進行重組。

LEAF:index上葉節點的數量
LVLS(LEVELS):index級數
ISIZE:index的平均行長。
KEYS:唯一取值的數量
INDEXPAGESIZE:index所在表空間的page size
PCTFREE:index page中預留空間(%)
F4:聚簇因子
F5:為index key預留的空間。這個值應小於50%,否則該報告建議對index進行重組
F6:估算index頁的用量,應大於總數的90%,否則該報告建議對index進行重組
F7:偽刪除RID的數量。應小於總數的20%,否則該報告建議對index進行重組
F8: 偽空頁的數量。應小於總數的20%,否則該報告建議對index進行重組

我們根據報告中REORG的值中有“*”來決定是否對table或index進行數據重組。當然,F1-F8的閥值只是建議值。

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