在資料庫運維中,經常會遇到需要統計db2表大小的問題。在db2中提供了3種方法已供我們選擇。分別為db2pd -tcbstats、admin_get_tab_info表函式和sysibmadm.admintabinfo系統管理檢視。
1、db2pdde tcbstats可以檢視表的tcb資訊,其中datasize欄位用來表示表的頁數,乘以頁大小即為表的大小。使用該方法時,只有該錶被訪問過才會顯示出來。
具體使用命令為db2pd -tcbstats。
2、reorgchk結果中,npages代表頁數,乘以頁大小就是表的大小,但reorgchk需要執行runstats,對於大表來說,需要的時間較長。
3、sysibmadm.admintabinfo管理檢視,db2 9版本引入,可以獲得表的大小和狀態資訊,以kb為計量單位。
通過命令db2 describe table sysibmadm.admintabinfo ,可以看到表的字段資訊。
通過命令
select (data_object_p_size + index_object_p_size + long_object_p_size +
lob_object_p_size + xml_object_p_size) as total_p_size
from sysibmadm.admintabinfo
where tabname = '表名' 統計表所占用的物理空間大小,包括資料、索引、大物件和xml空間大小。
sysibmadm.admintabinfo 中幾個字段值得注意:data_object_l_size和data_object_p_size。其中data_object_l_size代表表的邏輯大小(kb),data_object_p_size為表的物理大小(kb)。邏輯大小和物理大小的差別是什麼呢?想想一下,我們往某張表插入很多資料,然後刪除一些資料,但表佔據的空間並不會釋放,當新的資料插入時,仍然會使用這些空間。實際占用的空間叫做邏輯空間,分配過的空間叫物理空間,邏輯空間可能會小於物理空間,這兩者的差異可以通過reorg來消除。
除此之外,sysibmadm.admintabinfo檢視提供了其他幾個有用的字段,如reorg_pending,inplace_reorg_status,load_status等,詳細解釋,請參看資訊中心。
4、admin_get_info表函式返回結果與sysibmadm.admintabinfo管理檢視類似。
我統計使用的是select tabname,sum(data_object_p_size)/1024 from table (sysproc.admin_get_tab_info('模式','表名')) as t group by tabname;
使用此語句,統計速度要比sysibmadm.admintabinfo快很多。
db2中獲取某個表 索引占用空間的大小
在資料庫運維中,經常會遇到需要統計db2表大小的問題。在db2中提供了3種方法已供我們選擇。分別為db2pd tcbstats admin get tab info表函式和sysibmadm.admintabinfo系統管理檢視。1 db2pdde tcbstats可以檢視表的tcb資訊,其中dat...
db2表空間 本地分割槽索引
表分割槽 本地分割槽索引 l 概述 表分割槽是一種資料組織模式,在這種模式中,資料將以乙個或多個表列的值為依據,分割到多個稱為資料分割槽 或範圍 的儲存物件中。每乙個資料分割槽被分別儲存。這些儲存物件可以位於不同的表空間中,可以位於相同的表空間中,也可能是這兩種情況的組合。l 建立的分割槽指定不同表...
DB2 檢視所有表空間占用磁碟空間大小
db2 檢視表空間使用情況,占用磁碟空間大小 select a.snapshot timestamp,a.tbsp name,b.tbsp type,a.tbsp state,a.tbsp usable pages b.tbsp page size 1024 1024 1024 as total,a...