Non sto cercando di avviare una discussione di tipo Windows / Mac.
Personalmente, non ho bisogno di alcuna convinzione che NOLOCK
non sia una buona idea come pratica riflessiva. Sembra che quando stai sviluppando tutto dovrebbe essere intenzionale, non reazionario (/ amen)
Quindi ... insiste NOLOCK
il programmatore responsabile è la strada da percorrere. Raccomanda con tutte le query ad hoc e ogni volta che si interroga la produzione. Non ho visto una procedura memorizzata senza suggerimenti nolock su ogni tabella.
Non voglio essere quel ragazzo che entra e dice a tutti che una convinzione fondamentale è tutta sbagliata senza qualcosa per sostenerla.
Basta guardare le sessioni di commento sotto i vari post del blog, inviare un collegamento potrebbe non essere sufficiente. Credenze di vecchia data ecc ... Alcune persone non sono convinte che sia un problema. Vedi: sezione Commenti sotto ogni post sul blog di nolock che ho letto.
Attualmente alcuni altri DBA stanno lottando con alcuni misteriosi deadlock. Come si determina se i NOLOCK sono la fonte?
È stato suggerito di guardare XML da tracce ecc., Ma questo non affermerà esplicitamente che i deadlock causano il problema, vero? Non ho mai visto messaggi di errore così diretti. è vero?
In quale altro modo questi deadlock potrebbero essere bloccati su questo?
Dichiarazioni DDL come CREATE
sarebbero un indizio. C'è qualche output che potrei indicare o qualche dato che potrei trovare che possa aiutare a confermare la mia teoria prima di dare l'allarme?
O sto eseguendo flag di traccia o eventi estesi per identificare cosa è in esecuzione quando si verificano i deadlock e quindi deducendo dalle istruzioni DDL?
Osservando tutti i diversi modi in cui i dati possono essere confusi con i suggerimenti di Nolock, sembra un problema difficile da definire con precisione.