19.06.2013 Views

DB2 UDB for z/OS Version 8 Performance Topics - IBM Redbooks

DB2 UDB for z/OS Version 8 Performance Topics - IBM Redbooks

DB2 UDB for z/OS Version 8 Performance Topics - IBM Redbooks

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

5.6.4 Improved LPL recovery<br />

One source of unplanned outages that many <strong>DB2</strong> customers have struggled with is LPL<br />

(logical page list) pages. <strong>DB2</strong> puts pages into the LPL typically when I/O or coupling facility<br />

read or write errors are encountered. Once a page is entered into the LPL, that page is<br />

inaccessible until it is recovered. LPL recovery can be done using:<br />

► -START DATABASE command with SPACENAM option<br />

► RECOVER utility<br />

The -START DATABASE command drains the entire table space or partition, there<strong>for</strong>e making<br />

the entire page set or partition unavailable <strong>for</strong> the duration of the LPL recovery process even if<br />

only one page is in the LPL <strong>for</strong> that table space or partition. During the execution of the<br />

recover utility the table space or partition is unavailable.<br />

<strong>DB2</strong> V8 always attempts to automatically recover the LPL pages at the time that the pages<br />

are added to LPL. Those pages are deleted from the LPL when the automatic LPL recovery<br />

completes successfully.<br />

Even more important than automatic LPL recovery is that with <strong>DB2</strong> V8, during LPL recovery,<br />

all pages that are not in the LPL are accessible by SQL. Up to <strong>DB2</strong> V7, the entire table space<br />

or partition was unavailable during LPL recovery.<br />

5.6.5 Partitioning key update enhancement<br />

Some customers find the current implementation that allows update of values in partitioning<br />

key columns unusable because it does not allow concurrency if an update of a partitioning<br />

key changes the partition to which the row belongs.<br />

If the update requires moving the data row from one partition to another, <strong>DB2</strong> tries to take<br />

exclusive control of the objects to per<strong>for</strong>m the update by acquiring DRAIN locks. Because of<br />

this, no other application can access the range of partitions affected by update of values in<br />

partitioning key columns.<br />

Description<br />

Up to <strong>DB2</strong> V7, <strong>DB2</strong> takes the exclusive control to per<strong>for</strong>m the partitioned key update on:<br />

► The partition of the table space from which the row is moving, the partition of the table<br />

space to which the row is moving, and all partitions in between,<br />

► The partition of the partitioning index from which the partitioning key is moving, the<br />

partition of the partitioning index to which the partitioning key is moving, and all partitions<br />

in between<br />

► Non partitioning indexes defined on the table space.<br />

When updating values in columns that define the partitioning key, <strong>DB2</strong> V8 will NOT take<br />

exclusive control of the objects to per<strong>for</strong>m the update.<br />

If a row moves from one partition to another in a table that is a dependent table in a<br />

Referential Integrity relationship, there is a possibility of missing the row when checking <strong>for</strong> RI.<br />

To prevent this, if any update changes the row’s partition, a COMMIT duration S lock will be<br />

acquired on the parent table rows.<br />

Change to DSNZPARM parameter PARTKEYU<br />

The existing system parameter PARTKEYU specifies whether values in columns that<br />

participate in partitioning keys may be updated.<br />

► “YES” - Values in such columns may be updated. This is the default value.<br />

Chapter 5. Availability and capacity enhancements 257

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!