Domanda

Hai mai fatto per giustificare non si utilizza un hint per la query?

sto vedendo WITH (NOLOCK) in ogni singola query che colpisce un server molto occupato. E 'a tal punto che gli sviluppatori pensano che dovrebbe essere solo attiva per impostazione predefinita, perché odio vederlo a migliaia di codici di volte.

Ho cercato di spiegare che si sta permettendo letture sporche e si finirà con dati non corretti alla fine, ma credo che il compromesso prestazioni è valsa la pena. (Il loro database è un disastro;. Non c'è da meravigliarsi che hanno problemi di prestazioni)

Se si dispone di un chiaro esempio di come presentare il caso contro questo abuso del suggerimento NOLOCK, che sarebbe apprezzato.

È stato utile?

Soluzione

scegliere le tue battaglie e battaglie di questo tipo non possono essere facilmente vinto. Abbiamo un sistema in cui ogni LMD è accennato con il suggerimento ROWLOCK (indipendentemente modificare una riga o diverse migliaia di righe). Ho mostrato diversi esempi perché è davvero male, ma le prestazioni in quanto il sistema è già al lavoro, v'è la resistenza al cambiamento. Nota che li ho convinto abbastanza da non utilizzare questo andare avanti comunque.

NOLOCK ha posto ma posso consigliare alcuni riferimenti buoni in mostra i problemi di utilizzo:

Altri suggerimenti

E 'stato discusso sul SO prima:

Definisci molto occupato. Abbiamo alti volumi (50k nuove righe al secondo, grandi aggregati, ecc) e non si vede la necessità di ottenere i dati ingannevoli troppo

Si deve spiegare ai suoi colleghi l'importanza di comprendere i livelli di isolamento. Mostrare loro esempi. La spiegazione più bella e più semplice che ho trovato su manifesto Little Kendra dei livelli di isolamento . Chiedi loro perché pensano che hanno bisogno NOLOCK suggerimento. Perché non utilizzare il "livello di isolamento delle transazioni insieme ..." affermazioni? Chiedi che cosa è esattamente la situazione che vogliono correzione, forse hanno deadlock, blocking..etc. Se proprio non vogliono tenere serrature potrebbero prendere in considerazione il livello di isolamento dello snapshot.

Solo chiedendo loro si può avere un quadro chiaro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top