当前可以看到我的DB2 10.5正在使用40 GB的可用内存,并且所有这些内存都已被大小为4K的缓冲池使用。能帮您确定以下要求的方法吗
答案 0 :(得分:0)
db2pd -db mydb -pages 摘要
上面的命令显示下表,其中包含所有缓冲池和对象页的摘要。
Summary info for all bufferpools:
BPID TbspaceID ObjID Total Dirty Permanent Temporary Data Index LongField XMLData SMP LOB LOBA BMP
您可以使用以下选择语句从此输出中解码表和索引:
-- Data pages
SELECT TABSCHEMA, TABNAME, PARTITIONOBJECTID
FROM SYSCAT.DATAPARTITIONS
WHERE TBSPACEID = <TbspaceID> AND PARTITIONOBJECTID = <ObjID>;
-- Index pages
SELECT I.TABSCHEMA, I.TABNAME, I.INDNAME
FROM SYSCAT.INDEXES I
JOIN SYSCAT.TABLES T ON T.TABSCHEMA = I.TABSCHEMA AND T.TABNAME = I.TABNAME
LEFT JOIN SYSCAT.INDEXPARTITIONS P ON P.INDSCHEMA = I.INDSCHEMA AND P.INDNAME = I.INDNAME
WHERE
COALESCE(P.INDPARTITIONTBSPACEID, I.TBSPACEID) = <TbspaceID>
AND COALESCE(P.INDPARTITIONOBJECTID, I.INDEX_OBJECTID) = <ObjID>;
您可能会认为所有这些页面都很“热”。
所有事务可能在缓冲池中使用相同的页面,并且没有有关哪个事务触及内存中某个特定页面的信息。
您可以从交易中获得以下指标:
您可以查看POOL_x_READS
/ POOL_x_WRITES
/ POOL_x_REQ
指标以了解在缓冲池中触摸了多少数据,还可以查看x_SORT_x
指标以了解事务对排序内存的使用。
在缓冲池中的页面上没有此类信息。
与交易(或工作单元)相同,查询的统计信息可能如下: