IO / Table Spaces
Purpose
Table spaces view shows the performance of I/O operations for each table space including hit ratios and number of pages read and written for all buffer pools and for various data types and database usage.
Screenshot
![image image](/dmctop-wiki/static/2e991a7a2cde3ca0cfd59f4d2591a398/3cbba/table_spaces.png)
Metric shown
Gauge
Data hit%
Data page hit ratio. Formulas for calculating buffer pool hit ratios
= DATA_HIT_RATIO_NUMER / DATA_HIT_RATIO_DENOM
Source:
DATA_HIT_RATIO_NUMER = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_DATA_LBP_PAGES_FOUND - POOL_ASYNC_DATA_LBP_PAGES_FOUND)
DATA_HIT_RATIO_DENOM = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_DATA_L_READS + POOL_TEMP_DATA_L_READS)
Idx hit%
Index page hit ratio. Formulas for calculating buffer pool hit ratios
= IDX_HIT_RATIO_NUMER / IDX_HIT_RATIO_NUMER
Source:
IDX_HIT_RATIO_NUMER = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_INDEX_LBP_PAGES_FOUND - POOL_ASYNC_INDEX_LBP_PAGES_FOUND)
IDX_HIT_RATIO_DENOM = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_INDEX_L_READS + POOL_TEMP_INDEX_L_READS)
Col hit%
Column-organized page hit ratio. Formulas for calculating buffer pool hit ratios
= COL_HIT_NUMERATOR / COL_HIT_DENOMINATOR
Source:
COL_HIT_NUMERATOR = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_COL_LBP_PAGES_FOUND - POOL_ASYNC_COL_LBP_PAGES_FOUND)
COL_HIT_DENOMINATOR = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_COL_L_READS + POOL_TEMP_COL_L_READS)
Temp hit%
Page hit ratio in temporary table spaces.
= TEMP_HIT_RATIO_NUMER / TEMP_HIT_RATIO_DENOM
Source:
TEMP_HIT_RATIO_NUMER = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(SUM(POOL_TEMP_DATA_L_READS + POOL_TEMP_INDEX_L_READS + POOL_TEMP_XDA_L_READS + POOL_TEMP_COL_L_READS))-(SUM(POOL_TEMP_DATA_P_READS + POOL_TEMP_INDEX_P_READS + POOL_TEMP_XDA_P_READS + POOL_TEMP_COL_P_READS))
TEMP_HIT_RATIO_DENOM = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_TEMP_DATA_L_READS + POOL_TEMP_INDEX_L_READS + POOL_TEMP_XDA_L_READS + POOL_TEMP_COL_L_READS)
XML hit%
XML storage object (XDA) page hit ratio. Formulas for calculating buffer pool hit ratios
= XDA_HIT_NUMERATOR / XDA_HIT_DENOMINATOR
Source:
XDA_HIT_NUMERATOR = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_XDA_LBP_PAGES_FOUND - POOL_ASYNC_XDA_LBP_PAGES_FOUND)
XDA_HIT_DENOMINATOR = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_XDA_L_READS + POOL_TEMP_XDA_L_READS)
All hit ratio%
Overall hit ratio. Formulas for calculating buffer pool hit ratios
= ALL_HIT_RATIO_NUMER / POOL_L_READS
Source:
ALL_HIT_RATIO_NUMER = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_DATA_LBP_PAGES_FOUND + POOL_INDEX_LBP_PAGES_FOUND + POOL_XDA_LBP_PAGES_FOUND + POOL_COL_LBP_PAGES_FOUND - POOL_ASYNC_DATA_LBP_PAGES_FOUND - POOL_ASYNC_INDEX_LBP_PAGES_FOUND - POOL_ASYNC_XDA_LBP_PAGES_FOUND - POOL_ASYNC_COL_LBP_PAGES_FOUND)
POOL_L_READS = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_DATA_L_READS + POOL_INDEX_L_READS + POOL_XDA_L_READS + POOL_COL_L_READS + POOL_TEMP_DATA_L_READS + POOL_TEMP_XDA_L_READS + POOL_TEMP_INDEX_L_READS + POOL_TEMP_COL_L_READS)
Avg hit ratio%
= Average overall hit ratio. Formulas for calculating buffer pool hit ratios
= AVG_HIT_RATIO_NUMER / AVG_HIT_RATIO_DENOM
Source:
AVG_HIT_RATIO_NUMER = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM((POOL_DATA_LBP_PAGES_FOUND + POOL_INDEX_LBP_PAGES_FOUND + POOL_XDA_LBP_PAGES_FOUND + POOL_COL_LBP_PAGES_FOUND - POOL_ASYNC_DATA_LBP_PAGES_FOUND - POOL_ASYNC_INDEX_LBP_PAGES_FOUND - POOL_ASYNC_XDA_LBP_PAGES_FOUND - POOL_ASYNC_COL_LBP_PAGES_FOUND) / (POOL_DATA_L_READS + POOL_INDEX_L_READS + POOL_XDA_L_READS + POOL_COL_L_READS + POOL_TEMP_DATA_L_READS + POOL_TEMP_XDA_L_READS + POOL_TEMP_INDEX_L_READS + POOL_TEMP_COL_L_READS))
AVG_HIT_RATIO_DENOM = 1
Grid
IO type
The ratio of different type of page read and write.
= <IO_TYPE_R / IO_TOTAL>r | <IO_TYPE_W / IO_TOTAL >w | <IO_TYPE_D / IO_TOTAL >d | <IO_TYPE_I / IO_TOTAL >i | <IO_TYPE_T / IO_TOTAL >t IO_TOTAL = IO_TYPE_R + IO_TYPE_W + IO_TYPE_D + IO_TYPE_I + IO_TYPE_T
Source:
IO_TYPE_R = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_DATA_P_READS + POOL_INDEX_P_READS + POOL_TEMP_DATA_P_READS + POOL_TEMP_INDEX_P_READS + POOL_XDA_P_READS + POOL_TEMP_XDA_P_READS + POOL_COL_P_READS + POOL_TEMP_COL_P_READS + DIRECT_READS)
IO_TYPE_W = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_DATA_WRITES + POOL_INDEX_WRITES + POOL_XDA_WRITES + POOL_COL_WRITES + DIRECT_WRITES)
IO_TYPE_D = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_DATA_L_READS)
IO_TYPE_I = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_INDEX_L_READS)
IO_TYPE_T = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_TEMP_DATA_L_READS + POOL_TEMP_INDEX_L_READS + POOL_TEMP_XDA_L_READS + POOL_TEMP_COL_L_READS)
DB Size/Capacity
The percentage of database usage.
= <DB_SIZE> / <DB_CAPACITY>
Source:
DB_SIZE = SYSTOOLS.STMG_DBSIZE_INFO.DB_SIZE
DB_CAPACITY = SYSTOOLS.STMG_DBSIZE_INFO.DB_CAPACITY
Abnormal
The number of abnormal tablespace.
SELECT COUNT(*) AS ABNORMAL_TOTALFROM TABLE(MON_GET_TABLESPACE(NULL,#MEMBER#))WHERE TBSP_STATE <> 'NORMAL'
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).TBSP_STATE
Temp space used
The total space page size that are currently used in table spaces.
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(TBSP_USED_PAGES * TBSP_PAGE_SIZE)
Logical reads
The number of pages read from the local buffer pool (logical).
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_DATA_L_READS + POOL_INDEX_L_READS + POOL_XDA_L_READS + POOL_COL_L_READS + POOL_TEMP_DATA_L_READS + POOL_TEMP_XDA_L_READS + POOL_TEMP_INDEX_L_READS + POOL_TEMP_COL_L_READS)
Physical reads
The number of pages read in from the table space containers (physical).
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_DATA_P_READS + POOL_INDEX_P_READS + POOL_TEMP_DATA_P_READS + POOL_TEMP_INDEX_P_READS + POOL_XDA_P_READS + POOL_TEMP_XDA_P_READS + POOL_COL_P_READS + POOL_TEMP_COL_P_READS)
Write
The total number of write operations.
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_DATA_WRITES + POOL_INDEX_WRITES + POOL_XDA_WRITES + POOL_COL_WRITES + DIRECT_WRITES)
Table
Tablespace name
The name of a table space.
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).TBSP_NAME
Logical reads
The number of pages read from the local buffer pool (logical).
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_DATA_L_READS + POOL_INDEX_L_READS + POOL_XDA_L_READS + POOL_COL_L_READS + POOL_TEMP_DATA_L_READS + POOL_TEMP_XDA_L_READS + POOL_TEMP_INDEX_L_READS + POOL_TEMP_COL_L_READS)
Physical reads
The number of pages read in from the table space containers (physical).
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_DATA_P_READS + POOL_INDEX_P_READS + POOL_TEMP_DATA_P_READS + POOL_TEMP_INDEX_P_READS + POOL_XDA_P_READS + POOL_TEMP_XDA_P_READS + POOL_COL_P_READS + POOL_TEMP_COL_P_READS)
Hit ratio%
Overall hit ratio. Formulas for calculating buffer pool hit ratios
= ALL_HIT_RATIO_NUMER / POOL_L_READS
Source:
ALL_HIT_RATIO_NUMER = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_DATA_LBP_PAGES_FOUND + POOL_INDEX_LBP_PAGES_FOUND + POOL_XDA_LBP_PAGES_FOUND + POOL_COL_LBP_PAGES_FOUND - POOL_ASYNC_DATA_LBP_PAGES_FOUND - POOL_ASYNC_INDEX_LBP_PAGES_FOUND - POOL_ASYNC_XDA_LBP_PAGES_FOUND - POOL_ASYNC_COL_LBP_PAGES_FOUND)
POOL_L_READS = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_DATA_L_READS + POOL_INDEX_L_READS + POOL_XDA_L_READS + POOL_COL_L_READS + POOL_TEMP_DATA_L_READS + POOL_TEMP_XDA_L_READS + POOL_TEMP_INDEX_L_READS + POOL_TEMP_COL_L_READS)
Async reads%
The percentage of pages which have been asynchronously read from the table space containers (physical).
= ASYNC_READS / POOL_L_READS
Source:
ASYNC_READS = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_ASYNC_DATA_READS + POOL_ASYNC_INDEX_READS + POOL_ASYNC_XDA_READS + POOL_ASYNC_COL_READS)
POOL_L_READS = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_DATA_L_READS + POOL_INDEX_L_READS + POOL_XDA_L_READS + POOL_COL_L_READS + POOL_TEMP_DATA_L_READS + POOL_TEMP_XDA_L_READS + POOL_TEMP_INDEX_L_READS + POOL_TEMP_COL_L_READS)
Pages aread
The average number of asynchronous read per request.
= ASYNC_READS / ASYNC_READ_REQ
Source:
ASYNC_READS = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_ASYNC_DATA_READS + POOL_ASYNC_INDEX_READS + POOL_ASYNC_XDA_READS + POOL_ASYNC_COL_READS)
ASYNC_READ_REQ = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_ASYNC_DATA_READ_REQS + POOL_ASYNC_INDEX_READ_REQS + POOL_ASYNC_XDA_READ_REQS + POOL_ASYNC_COL_READ_REQS)
Writes
The total number of write operations.
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_DATA_WRITES + POOL_INDEX_WRITES + POOL_XDA_WRITES + POOL_COL_WRITES + DIRECT_WRITES)
Async reads
The total number of pages which have been asynchronously read from the table space containers (physical).
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_ASYNC_DATA_READS + POOL_ASYNC_INDEX_READS + POOL_ASYNC_XDA_READS + POOL_ASYNC_COL_READS)
Async writes
The number of times a page was physically written to disk by either an asynchronous page cleaner, or a prefetcher.
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_ASYNC_DATA_WRITES + POOL_ASYNC_INDEX_WRITES + POOL_ASYNC_XDA_WRITES + POOL_ASYNC_COL_WRITES)
Direct writes
The number of write operations that do not use the buffer pool.
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(DIRECT_WRITES)
Data writes
The number of times a buffer pool data page was physically written to disk.
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_DATA_WRITES)
Index writes
The number of times a buffer pool index page was physically written to disk.
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_INDEX_WRITES)
Avg_reads dir_reqs
The average number of read operations that do not use the buffer pool per request.
= DIRECT_READS / DIRECT_READ_REQS
Source:
DIRECT_READS = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(DIRECT_READS)
DIRECT_READ_REQS = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(DIRECT_READ_REQS)
Avg rdtime
The average amount of time spent for read operations.
= READ_TIME_MS / TOTAL_READS
Source:
READ_TIME_MS = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_READ_TIME + DIRECT_READ_TIME)
TOTAL_READS = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_DATA_P_READS + POOL_INDEX_P_READS + POOL_TEMP_DATA_P_READS + POOL_TEMP_INDEX_P_READS + DIRECT_READS)
Avg wrtime
The average amount of time spent for write operations.
= WRITE_TIME_MS / TOTAL_WRITES
Source:
WRITE_TIME_MS = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_WRITE_TIME + DIRECT_WRITE_TIME)
TOTAL_WRITES = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(DIRECT_WRITES + POOL_DATA_WRITES + POOL_INDEX_WRITES)
Tbsp type
Table space content type. A text identifier based on defines in sqlmon.h, and is one of:
- ANY
- LARGE
- SYSTEMP
- USRTEMP
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).TBSP_CONTENT_TYPE)
# of dbp
The number of buffer pool that is being monitored.
SELECT COUNT(*) AS NUM_DBPFROM TABLE(MON_GET_TABLESPACE(NULL,#MEMBER#)) AS MTSPLEFT OUTER JOIN SYSCAT.BUFFERPOOLS AS BP ON MTSP.TBSP_CUR_POOL_ID = BP.BUFFERPOOLIDLEFT OUTER JOIN TABLE(MON_GET_BUFFERPOOL(NULL,
Avg prefsize
The average size of pages which have been asynchronously read from the table space containers (physical) per request.
= READ_BYTES / ASYNC_READ_REQ
Source:
READ_BYTES = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(TBSP_PAGE_SIZE * (POOL_ASYNC_DATA_READS + POOL_ASYNC_INDEX_READS + POOL_ASYNC_XDA_READS + POOL_ASYNC_COL_READS))
ASYNC_READ_REQ = MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_ASYNC_DATA_READ_REQS + POOL_ASYNC_INDEX_READ_REQS + POOL_ASYNC_XDA_READ_REQS + POOL_ASYNC_COL_READ_REQS)
I/o skew
The I/O skew from average.
= 1 - AVG(POOL_L_READS)/MAX(POOL_L_READS)
Source:
POOL_L_READS = MON_GET_TABLESPACE(NULL,#MEMBER#).(POOL_DATA_L_READS + POOL_INDEX_L_READS + POOL_XDA_L_READS + POOL_COL_L_READS + POOL_TEMP_DATA_L_READS + POOL_TEMP_XDA_L_READS + POOL_TEMP_INDEX_L_READS + POOL_TEMP_COL_L_READS)
Tbspace status
The current state of a table space.
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).TBSP_STATE
Tbspace type
Table space type. A text identifier based on defines in sqlutil.h, and is one of:
- DMS
- SMS
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).TBSP_TYPE
Fsc on
Indicate whether file system caching is intended for a table space.
If MAX(FS_CACHING) = 0, then ‘YES’, else ‘NO’
Source:
FS_CACHING = MON_GET_TABLESPACE(NULL,#MEMBER#).FS_CACHING
File closed
The total number of database files closed.
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(FILES_CLOSED)
Victim buffers
The number of times an agent did not have a preselected victim buffer available.
Source: MON_GET_BUFFERPOOL(NULL, #MEMBER#).SUM(POOL_NO_VICTIM_BUFFER)
Unread prefpages
The number of pages that the prefetcher read into the bufferpool that were never used.
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(UNREAD_PREFETCH_PAGES)
Xda l_reads
The number of pages for XML storage objects (XDAs) read from the buffer pool (logical).
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_XDA_L_READS + (POOL_TEMP_XDA_L_READS)
Xda p_reads
The number of pages for XML storage objects (XDAs) which have read from the table space containers (physical).
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_XDA_P_READS + POOL_TEMP_XDA_P_READS)
Xda l_writes
The number of times a buffer pool data page for an XML storage object (XDA) was physically written to disk.
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_XDA_WRITES)
Prefetch size
The total page size the prefetcher gets from the disk at a time.
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(TBSP_PAGE_SIZE * TBSP_PREFETCH_SIZE)
Io
The total number of IO operations.
Source: MON_GET_TABLESPACE(NULL,#MEMBER#).SUM(POOL_DATA_WRITES + POOL_INDEX_WRITES + POOL_XDA_WRITES + POOL_COL_WRITES + DIRECT_WRITES + POOL_DATA_L_READS + POOL_INDEX_L_READS + POOL_TEMP_DATA_L_READS + POOL_TEMP_INDEX_L_READS + POOL_XDA_L_READS + POOL_TEMP_XDA_L_READS + POOL_TEMP_COL_L_READS + POOL_COL_L_READS)