Row-level locking improves concurrency in a multi-user system. However, a large number of row locks can degrade performance. About the system's selection of lock granularity discussed the way the optimizer makes some compile-time decisions about escalating row locks to table locks for performance reasons. This section discusses ways in which the Derby system and the user can make similar lock escalations.