Სარჩევი:

რა იწვევს მონაცემთა ბაზის ჩიხს?
რა იწვევს მონაცემთა ბაზის ჩიხს?

ვიდეო: რა იწვევს მონაცემთა ბაზის ჩიხს?

ვიდეო: რა იწვევს მონაცემთა ბაზის ჩიხს?
ვიდეო: What Are Database Deadlocks 2024, მაისი
Anonim

ა ჩიხი ხდება მაშინ, როდესაც ორი (ან მეტი) ტრანზაქცია ბლოკავს ერთმანეთს იმ რესურსების ჩაკეტვით, რომლებიც ასევე სჭირდება თითოეულ ტრანზაქციას. მაგალითად: ტრანზაქცია 1 იკავებს საკეტს A ცხრილში. ადამიანების უმეტესობა ამას დაწერს ჩიხები მრავალ მომხმარებელში თავიდან აცილება შეუძლებელია მონაცემთა ბაზა.

აქედან გამომდინარე, რა არის ჩიხები მონაცემთა ბაზაში?

ჩიხები . Ში მონაცემთა ბაზა , ა ჩიხი არის სიტუაცია, როდესაც ორი ან მეტი ტრანზაქცია ელოდება ერთმანეთს დათმობას საკეტები. მაგალითად, ტრანზაქცია A-მ შესაძლოა დაბლოკოს ანგარიშების ცხრილის ზოგიერთ მწკრივზე და დასასრულებლად საჭიროებს ზოგიერთი სტრიქონის განახლებას შეკვეთების ცხრილში.

ასევე იცით, შეუძლია თუ არა არჩევანს გამოიწვიოს ჩიხი? 2 პასუხი. ჩიხი ხდება მაშინ, როდესაც ერთი შეკითხვა იძენს დაბლოკვას ობიექტზე (რიგები, მონაცემთა გვერდები, მასშტაბები, ცხრილები და ა.შ.) და სხვა რესურსი ცდილობს მასზე წვდომას. SQL Server-ში ყველაზე პატარა ერთეული არის მონაცემთა გვერდები და SQL ინახავს გვერდს დაბლოკვას მასზე მუშაობისას. ასე რომ, დიახ, შესაძლებელია, რომ ორი აირჩიეთ განცხადება შეუძლია შექმნა ჩიხი.

გარდა ამისა, როგორ ავიცილოთ თავიდან ჩიხი მონაცემთა ბაზაში?

რჩევები ჩიხების თავიდან აცილების შესახებ

  1. დარწმუნდით, რომ მონაცემთა ბაზის დიზაინი სწორად არის ნორმალიზებული.
  2. განავითარეთ აპლიკაციები სერვერის ობიექტებზე წვდომისთვის ყოველ ჯერზე ერთი და იგივე თანმიმდევრობით.
  3. არ დაუშვათ მომხმარებლის შეყვანა ტრანზაქციების დროს.
  4. მოერიდეთ კურსორებს.
  5. შეინახეთ ტრანზაქციები რაც შეიძლება მოკლედ.

როგორ გამოვასწოროთ ჩიხი?

ჭკვიანმა დეველოპერმა უნდა გააკეთოს შემდეგი ნაბიჯები ჩიხიდან გამოსასვლელად:

  1. შეამოწმეთ შეცდომის ნომერი 1205, როდესაც გამონაკლისი არის დაშვებული.
  2. შეაჩერეთ აპლიკაცია მოკლედ, რათა სხვა შეკითხვას დრო მისცეს მისი ტრანზაქციის დასასრულებლად და შეძენილი ბლოკირების გასათავისუფლებლად.
  3. ხელახლა გაგზავნეთ მოთხოვნა, რომელიც დაბრუნდა SQL Server-ის მიერ.

გირჩევთ: