U větších databází, vytíženějších SQL serverů nebo i špatně navržených programů může vlivem nedostatku výkonu docházet k blokování záznamů na SQL serveru nebo pomalým odezvám. Řešením může být samozřejmě optimalizace dotazů, zvětšení výkonu serveru, přidání RAM, ladění aplikace atd. V určitých případech lze výkonu pomoci i psaním dotazů, které využívají tzv.špinavého čtení. Princip spočívá v tom, že dotaz nečeká na ukončení transkakcí nad čtenými daty (nečeká na dokončení update a insert).
Výhody
V určitých případech může pomoci s rychlostí dotazu. Je méně náročný na paměť.
Nevýhody
Jelikož čteme data, která mohou být aktuálně měněna, není výsledek dotazu 100% relevantní. Používat tento způsob získání dat je tedy na pováženou a rozhodně to chce určitou znalost konkrétní databáze potažmo aplikace.
Kupříkladu, když budete psát dotaz, který ověřuje aktuální množství určité skladové položky, před přenosem do dokladu, je třeba získat přesná data. Zde NOLOCK nepoužívat. Ale když budete zjišťovat, jaká je obrátka této položky za poslední rok, tak bych se tento způsob nebál použít.
Lze samozřejmě použít i při spojení více tabulek