Domanda

So che nel DB Oracle posso configurare una bandiera, che tutte le query di selezione in esecuzione su uno specifico database può essere eseguito come se è stato aggiunto il suggerimento NOLOCK. C'è qualcosa di simile in SQL Server?

È stato utile?

Soluzione

E 'possibile impostare il database in READ_ONLY modalità, che certamente cambia alcune delle regole di transazione, ma non credo che ci sia qualcosa di più vicino a un NOLOCK globale.

Modifica

Se si vuole essere in grado di eseguire eliminazioni, inserimenti e aggiornamenti, ma non volete i lettori per bloccare o essere necessario specificare suggerimenti o livelli di isolamento, si potrebbe anche prendere in considerazione l'accensione READ_COMMITTED_SNAPSHOT , ma la semantica ci sono ancora una volta non è proprio lo stesso che l'hint NOLOCK.

Altri suggerimenti

Non a livello di singolo database. Si può fare solo con suggerimenti o set transaction isolation level. È possibile impostare un database in modalità di sola lettura, che può avere questo effetto di default ma che sarà (come suggerisce il nome) scrive ostino al database.

Questo potrebbe essere utile per un database che viene aggiornato periodicamente. È possibile impostare il database in sola lettura e impostarlo essere accessibile per gli aggiornamenti poi di nuovo a sola lettura.

Non per l'intero database, ma per ogni query che fate:

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

o

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

etc

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top