Tento článok navrhuje dôležité tipy, ako sa vyhnúť zablokovaniu SQL Servers
Hoci SQL Server bol za posledných pár rokov svedkom obrovského vývoja, používatelia stále pravidelne čelia situácii zablokovania. V ideálnom prípade by mal byť databázový server schopný načítať viac požiadaviek, ale výsledkom sú často bloky. Konflikty, pri ktorých jeden proces čaká na uvoľnenie iného zdroja, sa nazývajú bloky. A potom sú tu zablokovania.
Predstavte si situáciu, keď jedna osoba žiada od druhého uvoľnenie zdroja a druhá čaká na uvoľnenie prvého. Výsledkom je, že obaja uviazli v slepej uličke. Žiadny z procesov nemôže pokračovať, pretože obidva sú uzamknuté a vyžaduje, aby ten druhý uvoľnil zdroj alebo zámok.
Pri práci s SQL servers, zablokovania sú dosť bežné a môžu brzdiť celý proces. Nie je možné vyhnúť sa zablokovaniu úplne, ale je možné určite minimalizovať šancu na vytvorenie zablokovania.
Problémy so zablokovaním

Je potrebné poznamenať, že zablokovanie priamo ovplyvňuje výkon a môže zastaviť spracovanie databázy.
1. Udržujte poradie rovnaké
K zablokovaniu nevyhnutne dochádza, ak sa zdroje nespracúvajú v dobre definovanom poradí. Aby sa minimalizovalo zablokovanie, všetky súbežné transakcie by mali pristupovať k objektom v dobre definovanom poradí. DBA by mali navrhnúť jasný súbor pravidiel pre prístup k objektom databázy. Monitory zablokovaní zvyčajne vykonávajú kontrolu zablokovania a po jeho zistení vyberú jednu obeť zablokovania a vrátia jej transakciu späť. Tým sa uvoľnia všetky zablokovania a predchádzajúce relácie môžu pokračovať v procese. Obeť zablokovania sa vyberá na základe priority zablokovania nastavenej serverom alebo nákladov na vrátenie späť.
2. Obmedzenie počas transakcie
Môžete obmedziť používateľov pri zadávaní akýchkoľvek druhov údajov, keď sa transakcia spracováva, a môžete ich pred transakciou aktualizovať, aby ste sa vyhli zablokovaniu. Snažte sa tiež udržiavať interakciu používateľa na minimálnej úrovni, pretože to ovplyvňuje rýchlosť. V ideálnom prípade by transakcie mali byť krátke a rýchle, aby sa zabránilo zablokovaniu. Aplikácia by mala byť navrhnutá tak, aby zachytila zámky v čo najmenej potrebnom čase a čo najrýchlejšie ich uvoľnila.
3. Tip NOLOCK
Keď niekto spustí dotaz proti tabuľke na predvolenej úrovni izolácie SQL, tabuľka sa uzamkne a na ďalšie dotazy bude treba počkať na vydanie. NOLOCK Hint je užitočný v situáciách, pretože umožňuje potlačiť uzamknutie tabuľky a ľahký prístup k ďalším dotazom.
4. Použite viazané pripojenia
Ak tá istá aplikácia dokáže otvoriť dve alebo viac spojení, ktoré môžu navzájom spolupracovať, nevytvára to zablokovanie. Preto sa odporúča používať viazané pripojenia.
Zablokovania nie sú jediné ťažkosti, ktoré pravdepodobne zažijete pri práci na a SQL Server databázy. V skutočnosti udalosti z korupcia sql je pravdepodobnejšie, že vám spôsobia smútok. Ak sa chcete vyhnúť scenáru straty dát, investujte do výkonného nástroja na obnovenie, ako je DataNumen SQL Recovery.
Úvod autora:
Victor Simon je odborníkom na obnovu dát v odbore DataNumen, Inc., ktorá je svetovým lídrom v oblasti technológií obnovy dát, vrátane zotavenie mdb a softvérové produkty na obnovenie sql. Pre viac informácií navštívte https://www.datanumen.com/