Frage

Ich weiß, dass in der Oracle-DB ich einen Flag konfigurieren kann, dass alle Auswahlabfragen auf einem bestimmtes laufende DB als ausgeführt werden kann, wenn der NOLOCK Hinweis hinzugefügt wurde. Gibt es etwas ähnliches in SQL Server?

War es hilfreich?

Lösung

Sie können die Datenbank festgelegt in READ_ONLY -Modus, der sicherlich einige der Transaktionsregeln ändern, aber ich glaube nicht, dass es etwas näher zu einem globalen NOLOCK.

Bearbeiten

Wenn Sie wollen in der Lage DELETEs, Einfügungen und Aktualisierungen durchführen, aber Sie wollen nicht, Leser zu sperren oder haben Hinweise oder Isolationsstufen angeben, können Sie auch auf READ_COMMITTED_SNAPSHOT , aber die Semantik gibt es wieder nicht ganz dasselbe wie den NOLOCK-Hinweis.

Andere Tipps

Nicht auf einer Pro-Datenbankebene. Sie können es nur tun, mit Hinweisen oder set transaction isolation level. Sie können eine Datenbank auf schreibgeschützten Modus eingestellt, die diesen Effekt standardmäßig haben können, aber das wird in die Datenbank preclude schreibt (wie der Name schon sagt).

Dies könnte für eine Datenbank nützlich sein, die regelmäßig aktualisiert wird. Sie legen die Datenbank schreibgeschützt und setzen es für die Updates beschreibbaren dann zurück zu schreibgeschützt.

Nicht für die gesamte Datenbank, sondern für jede Abfrage, die Sie tun:

SELECT a, b
FROM t1
WITH (NOLOCK)
WHERE t1.c = @value

oder

SELECT a, b
JOIN t1
ON t1.id = t2.id
WITH (NOLOCK)
FROM t2
WHERE t2.c = @value

etc

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top