Obsah:

Čo spôsobuje uviaznutie databázy?
Čo spôsobuje uviaznutie databázy?

Video: Čo spôsobuje uviaznutie databázy?

Video: Čo spôsobuje uviaznutie databázy?
Video: Я вернул его домой. Немецкая овчарка по имени Дом 2024, November
Anonim

A patová situácia sa stane, keď sa dve (alebo viac) transakcií navzájom blokujú držaním zámkov na zdrojoch, ktoré každá z transakcií tiež potrebuje. Napríklad: Transakcia 1 drží zámok na tabuľke A. Väčšina ľudí to napíše mŕtve body sa nedá vyhnúť v prípade viacerých používateľov databázy.

Čo je to uviaznutie v databáze?

Uviaznutia . V databázy , a patová situácia je situácia, v ktorej dve alebo viaceré transakcie na seba čakajú, aby sa vzdali zámkov. Transakcia A môže napríklad zablokovať niektoré riadky v tabuľke Účty a na dokončenie je potrebné aktualizovať niektoré riadky v tabuľke Objednávky.

Tiež viete, môže výber spôsobiť uviaznutie? 2 odpovede. Zablokovanie sa stane, keď jeden dotaz získa zámok na objekte (riadky, dátové stránky, rozsah, tabuľky atď.) a iný zdroj sa k nemu pokúsi pristupovať. Najmenšou jednotkou v SQL Serveri sú dátové stránky a SQL pri práci na stránke drží zámok na stránke. Takže áno, je možné, že dvaja vyberte vyhlásenie môcť vytvoriť patová situácia.

Okrem toho, ako môžeme zabrániť zablokovaniu v databáze?

Tipy, ako sa vyhnúť zablokovaniu

  1. Uistite sa, že návrh databázy je správne normalizovaný.
  2. Vyvíjajte aplikácie na prístup k objektom servera zakaždým v rovnakom poradí.
  3. Počas transakcií nepovoľte žiadny vstup používateľa.
  4. Vyhnite sa kurzorom.
  5. Udržujte transakcie čo najkratšie.

Ako vyriešite patovú situáciu?

Inteligentný vývojár musí vykonať nasledujúce kroky, aby sa zotavil z mŕtveho bodu:

  1. Pri vyvolaní výnimky skontrolujte chybu číslo 1205.
  2. Krátko pozastavte aplikáciu, aby dal druhému dotazu čas na dokončenie transakcie a uvoľnenie získaných zámkov.
  3. Znova odošlite dotaz, ktorý SQL Server vrátil späť.

Odporúča: