28 February,2017 by Tom Collins
Monitoring lock waits is a great way of measuring query performance slowdown.
Lock waits are a normal part query processing but when the lock waits start taking longer than normal , it’s a sign of trouble.
According to the DB2 LUW documentation a lock wait is defined as “A lock wait occurs when one transaction (composed of one or more SQL
statements) tries to acquire a lock whose mode conflicts with a lock held by another transaction”
Common symptoms of lock waits taking longer than normal are:
The ideal is to monitor continuously : Lock wait, Lock timeout and deadlock locking
To report on lock wait chains
Db2pd –locks waits –alldbs
Use this query with joins on views sysibmadm.snapappl_info which return information about applications from an application snapshot and sysibmadm.snapappl which reports on cumulative counts and the latest SQL statement executed . This query reports on useful wait stats details
db2 "SELECT ai.appl_name AS app_name , \ ai.primary_auth_id AS auth_id , ap.agent_id AS app_handle,\ ap.lock_waits AS lock_waits, ap.lock_wait_time / 1000 AS Total_Wait_S, \ (ap.lock_wait_time / ap.lock_waits ) AS Avg_Wait_ms \ FROM sysibmadm.snapappl_info ai, sysibmadm.snapappl ap \ WHERE ai.agent_id = ap.agent_id AND ap.lock_waits > 0"
Database Tuning for complex sql queries (DBA DB2)
This is only a preview. Your comment has not yet been posted.
As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.
Having trouble reading this image? View an alternate.
Posted by: |