• aaa

    Poznávačka krás Maďarska - toulání po severu 

  • CAT700

    Non-stop adventure závod přes Katalánsko - z Pyrenejí až k moři

  • Toulání Šumavou
    Toulání Šumavou

    Extrémní non-stop MTB závod

  • 1000 miles
    1000 miles

    Non-stop extrémní adventure závod napříč Československem by Jan Kopka

  • Bohemia Divide 2019

    Non-stop bike packing závod 700km dlouhý z nejjižnějšího do nejsevernějšího místa ČR 

A A A

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.

 

1
2
3
SELECT Mnozstvi
FROM TabSklad WITH(NOLOCK)
WHERE ....

 

Lze samozřejmě použít i při spojení více tabulek

1
2
3
4
5
SELECT T2.NazevZbozi, T1.Mnozstvi
FROM TabSklad T1 WITH(NOLOCK)
LEFT OUTER JOIN TabKarta T2 WITH(NOLOCK)
  ON T1.IDKarta=T2.ID
WHERE ........

 

 

 

 

 

 

 

 

Search