Understanding SQL Server Deadlocks

This is a continuation of a series of articles I’ve written on SQL Server concepts. When you work with SQL Server long enough on a database with enough traffic, you’re eventually going to encounter deadlocks. This article discusses what deadlocks are, how to interpret deadlock graphs, and some options for […]

SQL Server Locking

This is a continuation of my prior article on SQL Server database concurrency. Every request to read from, modify, or even insert or delete data must first acquire a lock on a database object. That object could be anything from the entire database to a table to a range of […]

SQL Server Transactions and Isolation Levels

As developers, we don’t always think too deeply about the database internals and that can result in poor performance and unexpected concurrency issues. This article represents my learning progress in diving into SQL Server’s concurrency features. In this article we’ll discuss transactions and isolation levels / read modes. By default, […]

Name your Constraints

This is a short and sweet article discussing the importance of naming database constraints. It’s written from the perspective of someone mostly familiar with SQL Server databases.