Sobes.tech
Middle

SQL-də hansı növ bloklamalar mövcuddur?

sobes.tech Süni İntellekt

AI-dan cavab

SQL-də kilid növləri:

  • Səviyyəyə görə:

    • Cədvəl kilidləri (Table Locks): Bütün cədvəli kilidləyir. Asan tətbiq olunur, amma paralelliyi əhəmiyyətli dərəcədə azalda bilər. Cədvəli tam dəyişdirən əməliyyatlar üçün uyğundur (məsələn, ALTER TABLE).
    • Sətir kilidləri (Row Locks): Fərdi sətirləri kilidləyir. Yüksək paralellik təmin edir, amma idarə üçün daha çox resurs tələb edir. Əksər DBMS-lərdə INSERT, UPDATE, DELETE üçün standartdır.
  • Giriş növünə görə:

    • Paylaşılan kilid (Shared Lock - S Lock): Bir neçə əməliyyatın məlumatları eyni vaxtda oxumasına imkan verir, amma digər yazma əməliyyatlarını qadağan edir.
    • Eksklüziv kilid (Exclusive Lock - X Lock): Yalnız bir əməliyyatın məlumatlara girişinə imkan verir (oxuma və yazma) və digər əməliyyatları bloklayır.
    • Niyyət kilidi (Intention Lock): DBMS-ə göstərir ki, əməliyyatlar aşağı səviyyədə (sətirlər və ya cədvəllər) kilid qoymağı planlaşdırır. Məsələn, IS (Intention Shared), IX (Intention Exclusive). Bu, DBMS-ə kilidlərin uyğunluğunu daha sürətli yoxlamağa kömək edir.
  • Digər növlər:

    • Aralıq kilid (Range Lock): İndeksdəki sətir aralığını bloklayır. Phantom oxumağı qarşısını almaq üçün istifadə olunur.
    • Metadatanın kilidi (Metadata Lock): Ob'ektin metadatasını (cədvəl, görünüş və s.) bloklayır. DDL əməliyyatları zamanı istifadə olunur.

Kilidlərin uyğunluğu, bir neçə əməliyyatın eyni zamanda müəyyən növ kilidləri saxlaya biləcəyini müəyyən edir.

Kilid növü S X IS IX
S Bəli Xeyr Bəli Xeyr
X Xeyr Xeyr Xeyr Xeyr
IS Bəli Xeyr Bəli Bəli
IX Xeyr Xeyr Bəli Bəli