Storage release incompatibilities in Db2 12

When you migrate to or apply maintenance in Db2 12, be aware of and plan for storage release incompatibilities that might affect your Db2 environment.

Start of changeThe following incompatible changes apply at any Db2 12 function level, including when you first migrate to Db2 12. For incompatible changes that might impact your Db2 12 environment when you activate function levels 501 and higher, see Incompatible changes summary for function levels 501 and higher.End of change

Changed behavior for PGSTEAL(NONE) buffer pools

PGSTEAL(NONE) buffer pools are managed differently in Db2 12.

Explanation

Db2 12 introduces the following changes to management of PGSTEAL(NONE) buffer pools:

  • In Db2 12, Db2 keeps all pages for open objects that are assigned to PGSTEAL(NONE) buffer pools in memory. When the buffer pool is allocated, Db2 creates an overflow area within the VPSIZE of the buffer pool. The overflow area is used if the buffer pool is not large enough to contain all pages for all open assigned objects. Page stealing can also occur in the overflow area. LRU chains are maintained for the overflow area, but buffer stealing in the overflow area uses the FIFO page-stealing algorithm.
  • Start of changeIn Db2 12, if you specify PGSTEAL(NONE) with FRAMESIZE(2G) in an ALTER BUFFERPOOL command, when Db2 allocates the buffer pools, it temporarily changes the page-stealing algorithm to PGSTEAL(LRU) and issues message DSNB549I.

    In Db2 11, FRAMESIZE(2G) was allowed with PGSTEAL(NONE), but this combination might waste real storage and lead to storage shortages.

    End of change

Possible impact to your Db2 environment

If a PGSTEAL(NONE) buffer pool is not large enough to contain all open assigned objects plus the overflow area, the overflow area is used. Pages that are allocated to the overflow area are not reallocated in the main part of the buffer pool until the data set is closed. Page stealing can occur in the overflow area. LRU chains are maintained for the overflow area, but buffer stealing in the overflow area uses the FIFO page-stealing algorithm.

Actions to take

Verify that existing buffer pools that are defined with the PGSTEAL(NONE) option meet the following criteria:

  • Assigned objects are frequently accessed, and not likely to grow quickly. For example, you can use the following real-time statistics values to identify candidates:
    • GETPAGES
    • NACTIVE
    • REORGINSERTS
  • The VPSIZE of the buffer pool is large enough to contain all pages for all assigned objects, and the overflow area. The size of the overflow is approximately 10 percent of the VPSIZE value for the buffer pool. The minimum size of the overflow area is 50 buffers, and the maximum size is 6400 buffers.

Alter buffer pools that do not meet the criteria to use the PGSTEAL(FIFO) or PGSTEAL(LRU) option.

Change to storage handling for the dynamic statement cache

Db2 12 changes the way in which storage in the EDM pool is allocated for cached dynamic statements.

Explanation

In Db2 12, EDMSTMTC specifies an upper limit on the amount of storage in the EDM pool that is used for cached dynamic statements. EDMSTMTC does not specify the initial amount of storage that is allocated. Storage is allocated only as it is needed. If adding of statements to the dynamic statement cache raises the amount of storage to a value that is greater than EDMSTMTC, the Db2 database manager removes statements that are not in use from the cache to lower the amount of storage to the EDMSTMTC value.

In previous releases, EDMSTMTC specified the initial amount of storage in the EDM pool that was allocated for cached dynamic statements. The initial EDMSTMTC value also established the minimum amount of storage that could be used for cached dynamic statements until the Db2 subsystem was restarted.

Possible impact to your Db2 environment

More real storage might be needed.

Actions to take

If storage shortages occur, increase the amount of real storage that is available.

Start of change

Increased EDM storage usage for DBDs

Starting with Db2 12 function level V12R1M100, you might need more EDM pool storage for DBDs than you needed in Db2 11.

Explanation

Immediately after migration to Db2 12 function level V12R1M100, for tables and table spaces that were created prior to Db2 12, more space is needed for storing their internal data structures in the EDM pool. However, after new function activation (Db2 12 function level V12R1M500 or later), when a data definition statement such as an ALTER is performed on one of those tables or table spaces, the storage usage for their internal structures is reduced again.

Possible impact to your Db2 environment

More EDM pool storage for DBDs might be needed after migration to Db2 12 function level V12R1M100, and before a data definition change to a table or table space in Db2 12 function level V12R1M500 or later.

Actions to take

Issue the following query after you migrate to Db2 12 function level V12R1M100. Then update the EDMDBDC subsystem parameter with a value that is at least twice the query result.

WITH DBD_LEN_TABLE (DBD_LEN) AS
 (SELECT SUM(LENGTH(A.DBD_DATA)) AS DBD_LEN
   FROM SYSIBM.DBDR A,SYSIBM.SYSDATABASE B
   WHERE  A.DBID = B.DBID      
   GROUP BY A.DBID
   ORDER BY DBD_LEN DESC)
 SELECT SUM(DBD_LEN)/1024 AS EDMDBDC_IN_KBYTES
  FROM DBD_LEN_TABLE                  
  WITH UR;
End of change