08.06.2014 Views

Download PDF (1.3 MB) - IBM Redbooks

Download PDF (1.3 MB) - IBM Redbooks

Download PDF (1.3 MB) - IBM Redbooks

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4.14.11 Suggestions for Business Monitor<br />

This section describes ways to tune and maximize the performance of Business Monitor V8.0.<br />

Improving concurrency by setting registry variables<br />

DB2 allows you to defer row locks for cursor stability (CS) or read stability (RS) isolation<br />

scans in certain cases. This deferral can last until a record is known to satisfy the predicates<br />

of a query when row locking is performed during a table or index scan.<br />

To improve concurrency, deferring row locking until after determining that a row qualifies for a<br />

query might be possible. Usually, concurrency is improved by setting the registry variables<br />

DB2_SKIPDELETED to permit scans to unconditionally skip uncommitted deletes, and<br />

DB2_SKIPINSERTED to permit scans to unconditionally skip uncommitted inserts.<br />

Example 4-4 shows how to enable these two registry variables for the MONITOR database.<br />

Example 4-4 Enabling registry values DB2_SKIPDELETED and DB2_SKIPINSERTED<br />

db2 connect to MONITOR<br />

db2set DB2_SKIPDELETED=ON<br />

db2set DB2_SKIPINSERTED=ON<br />

Avoiding full transaction log<br />

DB2 Health Monitor (HMON) regularly captures information about the database manager,<br />

database, table spaces, and tables. It calculates health indicators based on data retrieved<br />

from database system monitor elements, the operating system, and the DB2 system.<br />

Transactions hang if HMON examines the status for the following table and the transaction<br />

occupies the entire transaction log, resulting in an error with SQLCODE 964:<br />

.SIBOWNER<br />

To prevent this error, you can disable the HMON process by using the following command:<br />

db2 update dbm cfg using HEALTH_MON OFF<br />

Setting lock timeout properly<br />

The LOCKTIMEOUT parameter specifies the number of seconds that an application waits to<br />

obtain a lock. This parameter helps avoid global deadlocks for applications. If you set this<br />

parameter to 0 (zero), the application does not wait for locks. In this situation, if the lock is<br />

unavailable at the time of the request, the application immediately receives a -911 return<br />

code.<br />

If you set this parameter to -1, lock timeout detection is turned off.<br />

A value of 30 seconds might be a good starting value; tune as necessary after setting this<br />

value. The following example shows how to set this parameter for the MONITOR database.<br />

Example 4-5 Starting value for LOCKTIMEOUT<br />

db2 -v update db cfg for MONITOR using LOCKTIMEOUT 30<br />

Limiting event XML to 32 KB where possible<br />

Events that are small enough are persisted to a regular VARCHAR column in the incoming<br />

events table; large events are persisted to a binary large object (BLOB) column instead. In<br />

DB2, the largest VARCHAR column is 32768 bytes. Performance improves considerably<br />

when a VARCHAR column is used instead of a BLOB.<br />

Chapter 4. Performance tuning and configuration 87

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

Saved successfully!

Ooh no, something went wrong!