Článek navrhuje důležité tipy, jak se vyhnout zablokování SQL Servers
Ačkoli SQL Server za posledních několik let zaznamenal obrovský vývoj, uživatelé se stále pravidelně potýkají se situací uvíznutí. V ideálním případě by měl být databázový server schopen načíst více požadavků, ale často to vede k blokům. Konflikty, kdy jeden proces čeká na uvolnění jiného zdroje, se nazývají bloky. A pak jsou tu Deadlocks.
Představte si situaci, kdy jeden člověk žádá druhého, aby uvolnil zdroj, a druhý čeká na uvolnění prvního. Výsledkem je, že oba uvízli v patové situaci. Žádný z procesů nemůže pokračovat, protože oba jsou uzamčeny a vyžadují, aby ten druhý uvolnil prostředek nebo zámek.
Při práci s SQL servers, uváznutí jsou docela běžné a mohou brzdit celý proces. Není možné se zcela vyhnout zablokování, ale je možné zcela jistě minimalizovat šanci na vytvoření uváznutí.
Problém se zablokováním

Je třeba poznamenat, že zablokování přímo ovlivňuje výkon a může zastavit zpracování databáze.
1. Udržujte pořadí stejné
K zablokování dochází, pokud nejsou zdroje zpracovávány v dobře definovaném pořadí. Aby se minimalizovalo zablokování, měly by všechny souběžné transakce přistupovat k objektům v dobře definovaném pořadí. DBA by měli navrhnout jasnou sadu pravidel pro přístup k databázovým objektům. Monitory zámků obvykle provádějí kontrolu zablokování a při jeho zjištění vyberou jednu oběť zablokování a vrátí její transakci zpět. Tím se uvolní všechna zámky a předchozí relace mohou pokračovat v procesu. Oběti zablokování jsou vybírány na základě priority zablokování nastavené serverem nebo nákladů na vrácení zpět.
2. Omezení během transakce
Můžete omezit uživatele na zadávání jakýchkoliv dat během zpracování transakce a můžete aktualizovat data před transakcí, abyste se vyhnuli uváznutí. Také se snažte udržet interakci uživatele na minimální úrovni, protože to ovlivňuje rychlost. V ideálním případě by transakce měly být krátké a rychlé, aby nedošlo k uváznutí. Aplikace by měla být navržena tak, aby zachytila zámky v co nejkratším čase a uvolnila je co nejrychleji.
3. NOLOCK Tip
Když někdo spustí dotaz na tabulku ve výchozí úrovni izolace SQL, tabulka se uzamkne a další dotazy musí čekat na vydání. NOLOCK Hint je užitečný v takových situacích, protože umožňuje přepsat uzamčení tabulky a další dotazy získávají snadný přístup.
4. Použijte Bound Connections
Pokud může stejná aplikace otevřít dvě nebo více spojení, která mohou vzájemně spolupracovat, nevytvářela by uváznutí. Proto se doporučuje používat vázaná spojení.
Zablokování není jediným problémem, se kterým se pravděpodobně setkáte při práci na a SQL Server databáze. Ve skutečnosti incidenty korupce sql je pravděpodobnější, že vám způsobí smutek. Chcete-li se vyhnout scénáři ztráty dat, investujte do výkonného nástroje pro obnovu, jako je např DataNumen SQL Recovery.
Úvod autora:
Victor Simon je odborníkem na obnovu dat v oboru DataNumen, Inc., která je světovým lídrem v oblasti technologií pro obnovu dat, včetně zotavení mdb a SQL softwarové produkty pro obnovu. Pro více informací navštivte https://www.datanumen.com/