Locking is critical in a multiuser environment for providing transaction isolation. SQL Server supports all ANSI-defined transaction isolation levels. The Lock Manager in SQL Server automatically locks data at the row level or higher as necessary to provide the appropriate isolation while balancing the locking overhead with concurrent access to the data. It is important to understand how locking works and what its effect is on application performance to develop efficient queries and applications.
SQL Server provides a number of tools for monitoring and identifying locking problems and behavior. In addition, SQL Server provides a number of table-locking hints that give the developer better control over the default lock types and granularity used for certain queries.
Although following the guidelines to minimize locking contention in your applications is important, another factor that impacts locking behavior and query performance is the actual database design. Chapter 39, "Database Design and Performance," discusses database design and its effect on database performance, and provides guidelines to help ensure that your transactions and T-SQL code run efficiently.