Why is a significant private memory growth upto 4 GB is observered when PD_GET_DIAG_HIST table function is used to monitor the diagnostic data
This is a current designed behavior of DB2 V10.1. The function uses upto 20% of instance memory which causes the private memory to grow significantly. You can filter things more specifically or use unions to fetch larger a quantities of data over multiple queries.
Alternatively you can use the following two work-arounds to restrict private memory growth.
1) Running multiply "select statement" with 1 day parameter.
So if you need record for 6 days, then you need to use 6 select statements.
2) Using the db2diag tool to filter the message in the db2diag.log.