Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server-SELECT-Anweisungen verursachen Blockierung

SELECT kann Updates blockieren. Ein richtig gestaltetes Datenmodell und eine richtig gestaltete Abfrage verursachen nur minimale Blockierungen und stellen kein Problem dar. Der 'übliche' WITH NOLOCK-Hinweis ist fast immer die falsche Antwort. Die richtige Antwort ist, Ihre Abfrage so zu optimieren, dass sie keine riesigen Tabellen scannt.

Wenn die Abfrage nicht abstimmbar ist, sollten Sie zuerst SNAPSHOT ISOLATION level berücksichtigen , zweitens sollten Sie die Verwendung von DATENBANKSNAPSHOTS in Erwägung ziehen und die letzte Option sollte DIRTY READS sein (und es ist besser, Isolationsstufe anstatt den NOLOCK-TIPP zu verwenden). Beachten Sie, dass Dirty Reads, wie der Name schon sagt, inkonsistente Daten zurückgeben (z. B. Ihr gesamtes Blatt kann unausgeglichen sein).