Sobes.tech
Middle

Ի՞նչ տեսակների բլոկավորումներ կան SQL-ում։

sobes.tech AI

Պատասխան AI-ից

SQL-ում փակման տեսակները:

  • Եվ մակարդակով:

    • Աղյուսակի փակումներ (Table Locks): Փակվում է ամբողջ աղյուսակը: Հեշտ է իրականացնել, բայց կարող է զգալիորեն նվազեցնել համաժամանակությունը: Հարմար է այն գործողությունների համար, որոնք փոխում են ամբողջ աղյուսակը (օրինակ, ALTER TABLE):
    • Տողերի փակումներ (Row Locks): Փակվում են առանձին տողերը: Բարձր համաժամանակություն ապահովում է, բայց պահանջում է ավելի շատ ռեսուրսներ կառավարման համար: Դեռևս օգտագործվում է շատ DBMS-ներում INSERT, UPDATE, DELETE համար:
  • Մուտքի տեսակի համաձայն:

    • Կիսասեղմած փակում (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 Ոչ Ոչ Այո Այո