Middle
Кадом намудҳои бастани дар SQL вуҷуд доранд?
sobes.tech AI
Ҷавоб аз AI
Типҳои баста дар SQL:
-
Барои сатҳ:
- Бастаи ҷадвал (Table Locks): тамоми ҷадвалро бастан. Осон барои татбиқ кардан, аммо метавонад параллелизмро ба таври назаррас кам кунад. Барои амалҳое, ки тамоми ҷадвалро тағир медиҳанд, мувофиқ аст (масалан,
ALTER TABLE). - Бастаи хаттӣ (Row Locks): хаттҳоро ба таври инфиродӣ бастан. Параллелизмро баланд мекунад, аммо барои идоракунӣ бештар захира талаб мекунад. Дар аксари SGBD-ҳо барои
INSERT,UPDATE,DELETEдар асоси пешфарз истифода мешавад.
- Бастаи ҷадвал (Table Locks): тамоми ҷадвалро бастан. Осон барои татбиқ кардан, аммо метавонад параллелизмро ба таври назаррас кам кунад. Барои амалҳое, ки тамоми ҷадвалро тағир медиҳанд, мувофиқ аст (масалан,
-
Барои навъи дастрасӣ:
- Бастаи тақсимшуда (Shared Lock - S Lock): Имкон медиҳад, ки чанд транзак ба таври ҳамзамон маълумотро бихонанд, аммо навиштани дигаронро манъ мекунад.
- Бастаи истисноӣ (Exclusive Lock - X Lock): Танҳо як транзак метавонад ба маълумот дастрасӣ дошта бошад (хонидан ва навиштан) ва дигаронро манъ мекунад.
- Бастаи ният (Intention Lock): Ба SGBD нишон медиҳад, ки транзакҳо нақша доранд, ки дар сатҳи поёнтар (хаттҳо ё ҷадвалҳо) бастан гузоранд. Масалан,
IS(Intention Shared),IX(Intention Exclusive). Ин кӯмак мекунад, ки SGBD зудтар мувофиқати бастаҳоро санҷад.
-
Намудҳои дигар:
- Бастаи диапазон (Range Lock): Бастани диапазони хаттҳо дар индекс. Барои пешгирии хондани фарёд истифода мешавад.
- Бастаи метаданӣ (Metadata Lock): Бастани метаданӣ объект (ҷадвал, намоиш ва ғ.) истифода мешавад дар вақти иҷрои DDL.
Мувофиқати бастаҳо муайян мекунад, ки оё чанд транзак метавонад ҳамзамон баъзе намудҳои бастаҳоро дар як объект нигоҳ дорад.
| Навъи бастан | S | X | IS | IX |
|---|---|---|---|---|
| S | Бале | Не | Бале | Не |
| X | Не | Не | Не | Не |
| IS | Бале | Не | Бале | Бале |
| IX | Не | Не | Бале | Бале |