Penso che vada bene in alcune circostanze, purché tu accetti le conseguenze e non abbia altre opzioni.
Per altre opzioni, spingerei le persone verso l'uso dell'isolamento di lettura istantanea (RCSI) per nuove applicazioni o SNAPSHOT ISOLATION (SI) per le applicazioni precedenti, dove non è possibile testare facilmente l'intera base di codice per le condizioni di gara con RCSI.
Tuttavia, quelli potrebbero non essere adatti. Potrebbe essere necessario dedicare un po 'di tempo extra ad amare e prendersi cura di tempdb e assicurarsi che nessuno lasci una transazione aperta che fa crescere l'archivio versione (e tempdb) e riempie il disco.
Se non si dispone di un DBA o di qualcuno il cui compito è monitorare e gestire il proprio SQL Server, tali opzioni possono essere pericolose. Più in generale, non tutti hanno il pieno controllo del codice che va al proprio server dove possono cambiare la stringa di connessione o il codice per richiedere SI per domande sul problema.
Oltre a ciò, la maggior parte delle persone non ha problemi di blocco con l' intera applicazione . Hanno problemi con cose come la segnalazione di dati OLTP. Se puoi accettare i compromessi di NOLOCK / RU in cambio di quei rapporti che non sono stati bloccati dagli scrittori, prova.
Assicurati solo di capire cosa significhi. Non significa che la tua query non accetta alcun blocco, significa che non rispetta i blocchi estratti da altre query.
E, naturalmente, se il tuo problema è il blocco scrittore / scrittore, l'unica opzione che ti aiuterà è SI, ma ci vorrebbe una quantità incredibile di lavoro degli sviluppatori per implementarlo correttamente con la gestione degli errori, ecc.