Monday, 23 June 2014

How to list the tablespaces and their % usage

How to list the tablespaces and their % usage

How to list the tablespaces and their % usage
To check the tablespaces and their percentage usage you can run the following select command, and connect to the database first.
db2 connect to <db_name>


Then run the the select bellow and alter dbname with your database name.  The SNAPSHOT_TBS_CFG function returns configuration information from a table space snapshot, so the snapshot monitoring should be enabled for you can run this select. Tablespace_Type is 1 for SMS and 0 for DMS tablespaces. For SMS tablespaces the percentage usage will be always 100%, so this select makes sense only for DMS tablespaces.

db2 select "TABLESPACE_ID as id, SUBSTR(TABLESPACE_NAME, 1, 20) as name, \
INT(PAGE_SIZE) as PAGE_SIZE, INT(TOTAL_PAGES) as TOTAL_PAGES, \
INT(USED_PAGES) as USED_PAGES, \
INT(DECIMAL(TOTAL_PAGES,10,2)-DECIMAL(USED_PAGES,10,2)) as FREE_PAGES,\
'      ' CONCAT (SUBSTR(CHAR(DECIMAL(USED_PAGES, 10, 2)/ \
DECIMAL(TOTAL_PAGES,10,2)*100),9,5)) CONCAT '%' as PERCENT_USED, \
INT(NUM_CONTAINERS) as N_CONTAINERS \
from table (snapshot_tbs_cfg('<db_name>', 0)) as t \
where TABLESPACE_TYPE=0 order by PERCENT_USED desc"
Output example:
NAME       PAGE_SIZE  TOTAL_PAGES USED_PAGES FREE_PAGES PERCENT_USED N_CONTAINERS
---------- ----------- ---------- ---------- ---------- ------------ ------------
TS_INDEXES        4096     111542      80160      31382       71.86%            3
TS_EVT_REP       16384      19000       7104      11896       37.38%            2
TS_SLOTS         16384      64800      21920      42880       33.82%            3
TS_REC_LOG       16384      12800       2816       9984       22.00%            4
TS_LONG          32768       1280        110       1170       08.59%            3
TS_REST           4096       4500        288       4212       06.40%            3



Specifying a tablespace



db2 select "SUBSTR(TABLESPACE_NAME, 1, 20) as name, \
INT(PAGE_SIZE) as PAGE_SIZE, INT(TOTAL_PAGES) as TOTAL_PAGES, \
INT(USED_PAGES) as USED_PAGES, \
INT(DECIMAL(TOTAL_PAGES,10,2)-DECIMAL(USED_PAGES,10,2)) as FREE_PAGES,\
'      ' CONCAT (SUBSTR(CHAR(DECIMAL(USED_PAGES, 10, 2)/ \
DECIMAL(TOTAL_PAGES,10,2)*100),9,5)) CONCAT '%' as PERCENT_USED, \
INT(NUM_CONTAINERS) as N_CONTAINERS \
from table (snapshot_tbs_cfg('<db_name>', 0)) as t \
where TABLESPACE_TYPE=0 and TABLESPACE_NAME='TS_INDEXES'" 

Where TS_INDEXES is the tablespace name.



Output Example:

NAME       PAGE_SIZE  TOTAL_PAGES USED_PAGES FREE_PAGES PERCENT_USED N_CONTAINERS
---------- ----------- ---------- ---------- ---------- ------------ ------------
TS_INDEXES        4096     111542      80160      31382       71.86%            3

  1 record(s) selected.

No comments:

Post a Comment