Obsah:

Co způsobuje zablokování databáze?
Co způsobuje zablokování databáze?

Video: Co způsobuje zablokování databáze?

Video: Co způsobuje zablokování databáze?
Video: How GitHub's Database Self-Destructed in 43 Seconds 2024, Listopad
Anonim

A uváznutí nastane, když se dvě (nebo více) transakcí vzájemně blokují tím, že drží zámky na zdrojích, které každá z transakcí také potřebuje. Například: Transakce 1 drží zámek na tabulce A. Většina lidí to napíše uváznutí nelze se vyhnout ve víceuživatelském prostředí databáze.

Co je to uváznutí v databázi?

Zablokování . V databáze , a uváznutí je situace, kdy dvě nebo více transakcí na sebe čekají, aby se vzdaly zámků. Transakce A může například zablokovat některé řádky v tabulce Účty a k dokončení potřebuje aktualizovat některé řádky v tabulce Objednávky.

Také víte, může výběr způsobit uváznutí? 2 Odpovědi. Zablokování se stane, když jeden dotaz získá zámek na objektu (řádky, datové stránky, rozsah, tabulky atd.) a jiný zdroj se k němu pokusí přistupovat. Nejmenší jednotkou v SQL Serveru jsou datové stránky a SQL při práci na stránce drží zámek. Takže ano, je možné, že dva vybrat tvrzení umět vytvořit uváznutí.

Navíc, jak můžeme zabránit uváznutí v databázi?

Tipy, jak se vyhnout patovým situacím

  1. Ujistěte se, že návrh databáze je správně normalizován.
  2. Vyvíjejte aplikace pro přístup k objektům serveru pokaždé ve stejném pořadí.
  3. Během transakcí nepovolujte žádné uživatelské vstupy.
  4. Vyhněte se kurzorům.
  5. Udržujte transakce co nejkratší.

Jak opravíte zablokování?

Chytrý vývojář musí provést následující kroky, aby se zotavil ze zablokování:

  1. Při vyvolání výjimky zkontrolujte chybu číslo 1205.
  2. Krátce pozastavte aplikaci, aby měl druhý dotaz čas na dokončení transakce a uvolnění získaných zámků.
  3. Znovu odešlete dotaz, který byl SQL Serverem vrácen.

Doporučuje: