Um Datenkonsistenz zu wahren, sperrt der
SQL Sevrer Sätze bzw Pages bzw Tables, das nennt sich dann Lock Escalation, weil uU Sätze gesperrt sind, die mit der Transaktion gar nichts zu tun haben. Ich nutze in unseren Programmen bei allen selects "with (nolock)" + hatte noch nie - auch in stark concurrenten Umgebungen Probleme, Aber das waren auch immer Daten, wo viel mehr gelesen als geschrieben wurde.
Manche sagen, with nolock wäre bad practice. Aber - sieh oben - das hängt davon ab.
https://www.sentryone.com/blog/aaron...ock-everywhere
https://www.sqlshack.com/understandi...l-server-2017/
https://stackoverflow.com/questions/...t-bad-practice