-- DBA.V_ASYNC_WRITE_RATIO - Asynchronous Write Percentage (AWP) -- Downloaded from http://www.ebenner.com/db2luwdba-howto -- For use only with other components from article series: -- "Effective DB2 Monitoring with Snapshot Administrative Views" -- by Jeffrey Benner, in _DB2 LUW DBA HowTo_ -- Please direct any questions to consulting@ebenner.com -- This work is licensed under the Creative Commons Attribution 3.0 United States License. To view a copy of this license, visit http://creativecommons.org/licenses/by/3.0/us/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. create view DBA.V_ASYNC_WRITE_RATIO as with POOL_ASYNC_DATA_WRITES_DELTA_TB as (select snap0.SNAPSHOT_TIMESTAMP, ( POOL_ASYNC_DATA_WRITES - ( select POOL_ASYNC_DATA_WRITES from dba.snapdb as SNAP1 where snap1.SNAPSHOT_TIMESTAMP = ( select max(snap2.SNAPSHOT_TIMESTAMP) from dba.snapdb as SNAP2 where snap2.SNAPSHOT_TIMESTAMP < snap0.SNAPSHOT_TIMESTAMP ) ) ) as POOL_ASYNC_DATA_WRITES_DELTA from dba.snapdb as SNAP0 ), POOL_ASYNC_INDEX_WRITES_DELTA_TB as (select snap0.SNAPSHOT_TIMESTAMP, ( POOL_ASYNC_INDEX_WRITES - ( select POOL_ASYNC_INDEX_WRITES from dba.snapdb as SNAP1 where snap1.SNAPSHOT_TIMESTAMP = ( select max(snap2.SNAPSHOT_TIMESTAMP) from dba.snapdb as SNAP2 where snap2.SNAPSHOT_TIMESTAMP < snap0.SNAPSHOT_TIMESTAMP ) ) ) as POOL_ASYNC_INDEX_WRITES_DELTA from dba.snapdb as SNAP0 ), POOL_DATA_WRITES_DELTA_TB as (select snap0.SNAPSHOT_TIMESTAMP, ( POOL_DATA_WRITES - ( select POOL_DATA_WRITES from dba.snapdb as SNAP1 where snap1.SNAPSHOT_TIMESTAMP = ( select max(snap2.SNAPSHOT_TIMESTAMP) from dba.snapdb as SNAP2 where snap2.SNAPSHOT_TIMESTAMP < snap0.SNAPSHOT_TIMESTAMP ) ) ) as POOL_DATA_WRITES_DELTA from dba.snapdb as SNAP0 ), POOL_INDEX_WRITES_DELTA_TB as (select snap0.SNAPSHOT_TIMESTAMP, ( POOL_INDEX_WRITES - ( select POOL_INDEX_WRITES from dba.snapdb as SNAP1 where snap1.SNAPSHOT_TIMESTAMP = ( select max(snap2.SNAPSHOT_TIMESTAMP) from dba.snapdb as SNAP2 where snap2.SNAPSHOT_TIMESTAMP < snap0.SNAPSHOT_TIMESTAMP ) ) ) as POOL_INDEX_WRITES_DELTA from dba.snapdb as SNAP0 ) select A.SNAPSHOT_TIMESTAMP, CASE WHEN (POOL_DATA_WRITES_DELTA + POOL_INDEX_WRITES_DELTA) = 0 then 0 ELSE (DECIMAL((DECIMAL(POOL_ASYNC_DATA_WRITES_DELTA + POOL_ASYNC_INDEX_WRITES_DELTA, 23, 4) / DECIMAL(POOL_DATA_WRITES_DELTA + POOL_INDEX_WRITES_DELTA, 23, 4)) * 100, 8, 1)) END as async_write_pct from POOL_ASYNC_DATA_WRITES_DELTA_TB A, POOL_ASYNC_INDEX_WRITES_DELTA_TB B, POOL_DATA_WRITES_DELTA_TB C, POOL_INDEX_WRITES_DELTA_TB D where A.SNAPSHOT_TIMESTAMP = B.SNAPSHOT_TIMESTAMP and B.SNAPSHOT_TIMESTAMP = C.SNAPSHOT_TIMESTAMP and C.SNAPSHOT_TIMESTAMP = D.SNAPSHOT_TIMESTAMP ;