Middle
Ի՞նչ տեսակների բլոկավորումներ կան SQL-ում։
sobes.tech AI
Պատասխան AI-ից
SQL-ում փակման տեսակները:
-
Եվ մակարդակով:
- Աղյուսակի փակումներ (Table Locks): Փակվում է ամբողջ աղյուսակը: Հեշտ է իրականացնել, բայց կարող է զգալիորեն նվազեցնել համաժամանակությունը: Հարմար է այն գործողությունների համար, որոնք փոխում են ամբողջ աղյուսակը (օրինակ,
ALTER TABLE): - Տողերի փակումներ (Row Locks): Փակվում են առանձին տողերը: Բարձր համաժամանակություն ապահովում է, բայց պահանջում է ավելի շատ ռեսուրսներ կառավարման համար: Դեռևս օգտագործվում է շատ DBMS-ներում
INSERT,UPDATE,DELETEհամար:
- Աղյուսակի փակումներ (Table Locks): Փակվում է ամբողջ աղյուսակը: Հեշտ է իրականացնել, բայց կարող է զգալիորեն նվազեցնել համաժամանակությունը: Հարմար է այն գործողությունների համար, որոնք փոխում են ամբողջ աղյուսակը (օրինակ,
-
Մուտքի տեսակի համաձայն:
- Կիսասեղմած փակում (Shared Lock - S Lock): Թույլ է տալիս մի քանի գործարքների միաժամանակ կարդալ տվյալները, բայց արգելում է ուրիշների գրառումը:
- Ազատ փակում (Exclusive Lock - X Lock): Թույլ է տալիս միայն մեկ գործարք ունենալ տվյալների մուտք (կարդալ և գրել) և արգելում մյուսներին:
- Նպատակի փակում (Intention Lock): Հուշում է DBMS-ին, որ գործարքները պլանավորում են տեղադրել փակման ավելի ցածր մակարդակում (տողեր կամ աղյուսակներ): Օրինակ,
IS(Intention Shared),IX(Intention Exclusive):
-
Այլ տեսակներ:
- Տարածքային փակում (Range Lock): Փակվում է ինդեքսում տողերի տիրույթը: Օգտագործվում է ֆանտոմային ընթերցումը կանխելու համար:
- Մետադատան փակում (Metadata Lock): Փակվում են օբյեկտի մետադատաները (աղյուսակ, տեսք և այլն): Օգտագործվում է DDL-ների ժամանակ:
Համատեղելիությունը որոշում է, կարող են արդյոք միաժամանակ մի քանի գործարքներ պահել որոշակի տեսակների փակումները նույն օբյեկտում:
| Փակման տեսակ | S | X | IS | IX |
|---|---|---|---|---|
| S | Այո | Ոչ | Այո | Ոչ |
| X | Ոչ | Ոչ | Ոչ | Ոչ |
| IS | Այո | Ոչ | Այո | Այո |
| IX | Ոչ | Ոչ | Այո | Այո |