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 (მიზნის გაზიარება), IX (მიზნის ექსკლუზიური). ეს ეხმარება DBMS-ს სწრაფად გადაამოწმოს ბლოკირების თავსებადი.
  • სხვა ტიპები:

    • საფარვის ბლოკირება (Range Lock): ბლოკავს სვეტების დიაპაზონს ინდექსში. გამოიყენება ფანტომური წაკითხვის თავიდან ასაცილებლად.
    • მეტადანობის ბლოკირება (Metadata Lock): ბლოკავს ობიექტის მეტადანობას (ცხრილები, წარმოდგენები და ა.შ.). გამოიყენება DDL ოპერაციების დროს.

შესაკრებების თავსებადობა განსაზღვრავს, შეიძლება თუ არა რამდენიმე ტრანზაქცია ერთდროულად შეინარჩუნოს გარკვეული ტიპის ბლოკირებები ერთ ობიექტზე.

ბლოკირების ტიპი S X IS IX
S დიახ არა დიახ არა
X არა არა არა არა
IS დიახ არა დიახ დიახ
IX არა არა დიახ დიახ