"Gehege"
Neulich hatten wir das Thema Lock Escalation by SQLServer, weiß nicht mehr wo. Das Lock Verhalten ist (ohne Anspruch auf Allgemeingültigkeit) bei dem Produkt traditionell nicht so gut, über die Jahre/Versionen aber besser geworden. Rowlevel locking war langezeit auf der Wunschliste, geht jetzt, kann aber trotzdem mal Aussetzen, eben im Falle einer "Escalation". Was man im Betrieb mit hoher Serverlast übersetzen kann.
Es ist also nicht nur eine Frage der Anwendung und deren Zugriffstechnik. Ich mag das Produkt nicht, deswegen kann ich nicht wirklich konkrete Tipps geben. Würde aber mal testen, ob das Verhalten Last abhängig ist. Z.B. morgens um 8-10 schlecht, 17 uhr und später eben besser. Oder tritt es mit einer einzigen, aktiven Anwendung auf (Die Anwendung sperrt sich tatsächlich selbst)
Auch gern problematisch und ggF. auch bei fettem Code systematisch und relativ zügig zu bereinigen (Trotzdem Fleißarbeit). Commit-Durcheinander.
Ich habe mit Delphi immer mit impliziten Transaktionen gearbeitet und alles was explizites Transaktionshandling macht, verboten, rausgeworfen. Ganz früher auch mal anders und sofort graue Haare bekommen (das war auch ein MS
SQL Server).