Queue on SQL collisions: coll/vwait = <relation>, <number of> lock list collisions, <number of> vwaits
Explanation
Queues for SQL locks are occurring, that is, more than one task is waiting for these locks to be released. The locking application releases the SQL lock with COMMIT. Transactions that run too long, where the application sets a long SQL lock, are usually the cause of long wait times. Long wait times may also occur if many applications request locks on the same object, as there is a queue for the relevant SQL lock. Due to sequential processing, the queue is often reduced slowly (particularly for multi-CPU systems). The database system attempts to execute locking tasks in the database kernel with higher priority if these locks are requested by other sessions (which are then in Vwaits) to avoid queues for SQL lock objects. For information about the current lock situation in production operation, use SELECT * FROM TRANSACTIONS.
User action
Determine whether the application is suited for isolation level 0 (dirty read) to avoid read locks (SAP R/3 runs on isolation level 0). Also, determine whether the time between the lock being set and the COMMIT can be reduced (avoid locks during dialog sessions). Modify the application logic to avoid simultaneous locks on the same line.