Deadlock, iki veya daha fazla işlemin (transaction) birbirinin kilitlediği kaynakları beklemesi sonucu oluşan sonsuz döngüdür. SQL Server, sistemi kurtarmak için işlemlerden birini iptal eder (victim).
Hangi sorguların deadlock yarattığını görmek için SQL Server'da 1222 numaralı Trace Flag'i aktif edebilirsiniz.
Raporlama gibi anlık, milisaniyelik verinin kritik olmadığı okuma işlemlerinde WITH (NOLOCK) hint'i kullanarak tabloların kilitlenmesini önleyebilirsiniz.
Eksik indeksler SQL Server'ın tüm tabloyu taramasına (Table Scan) neden olur. Bu da tablonun tamamını kilitler. WHERE şartında sık kullanılan kolonlara Non-Clustered Index ekleyin.
Büyük tablolara yeni index eklerken tablonuz geçici olarak kilitlenebilir, bu yüzden index oluşturma işlemlerini sistemin en az kullanıldığı saatlerde yapmaya özen gösterin.