Məqalədə kilidlərin qarşısını almaq üçün vacib məsləhətlər verilir SQL Servers
Baxmayaraq ki SQL Server son bir neçə ildə böyük təkamülün şahidi olsa da, istifadəçilər hələ də müntəzəm olaraq çıxılmaz vəziyyətlə üzləşirlər. İdeal olaraq, verilənlər bazası serveri çoxsaylı sorğuları qəbul edə bilməlidir, lakin bu, çox vaxt bloklarla nəticələnir. Bir prosesin digər resursun buraxılmasını gözlədiyi münaqişələrə bloklar deyilir. Və sonra çıxılmaz vəziyyətlər var.
Bir vəziyyəti təsəvvür edin ki, bir şəxs ikincidən resursu buraxmağı xahiş edir, ikincisi isə birincinin buraxılmasını gözləyir. Nəticədə hər ikisi çıxılmaz vəziyyətdə qalıb. Proseslərin heç biri davam edə bilməz, çünki hər ikisi kilidlidir və digərinin resursu və ya kilidi buraxmasını tələb edir.
ilə işləyərkən SQL servers, çıxılmaz vəziyyətlər olduqca yaygındır və onlar bütün prosesə mane ola bilər. Tamamilə çıxılmaz vəziyyətdən qaçmaq mümkün deyil, lakin dalana dirənmək şansını minimuma endirmək olar.
Kilid problemi

Qeyd etmək lazımdır ki, çıxılmaz vəziyyətlər performansa birbaşa təsir edir və verilənlər bazasının işlənməsini dayandıra bilər.
1. Sifarişi eyni saxlayın
Resurslar dəqiq müəyyən edilmiş qaydada emal edilmədikdə, çıxılmaz vəziyyətlər yaranacaq. Çıxılmaz vəziyyətləri minimuma endirmək üçün bütün paralel əməliyyatlar obyektlərə dəqiq müəyyən edilmiş qaydada daxil olmalıdır. Verilənlər Bazası obyektlərinə daxil olmaq üçün DBA-lar aydın qaydalar dəsti hazırlamalıdırlar. Adətən Kilid Monitorları çıxılmaz vəziyyət yoxlamasını həyata keçirir və aşkar edildikdə, bir çıxılmaz vəziyyət qurbanını seçir və əməliyyatı geri qaytarırlar. Beləliklə, bütün kilidlər açılır və əvvəlki sessiyaların prosesi davam etdirməsinə icazə verilir. Çıxılmaz vəziyyət qurbanları Server tərəfindən təyin edilmiş çıxılmaz vəziyyət prioriteti və ya geri qaytarma dəyəri əsasında seçilir.
2. Əməliyyat zamanı məhdudiyyət
Tranzaksiya işlənərkən istifadəçiləri istənilən növ məlumatların daxil edilməsini məhdudlaşdıra bilərsiniz və dalana dirənməmək üçün əməliyyatdan əvvəl məlumatları yeniləyə bilərsiniz. Həmçinin, sürətə təsir etdiyi üçün istifadəçinin qarşılıqlı əlaqəsini minimum səviyyədə saxlamağa çalışın. İdeal olaraq, dalana dirənməmək üçün əməliyyatlar qısa və sürətli olmalıdır. Tətbiq elə tərtib edilməlidir ki, kilidləri ən az tələb olunan vaxtda tutsun və mümkün qədər tez buraxsın.
3. NOLOCK İpucu
Kimsə SQL defolt izolyasiya səviyyəsində cədvələ qarşı sorğu işlətdikdə, cədvəl kilidlənir və növbəti sorğular buraxılışı gözləməli olur. NOLOCK İpucu belə vəziyyətlərdə faydalıdır, çünki o, masanın kilidlənməsini ləğv etməyə və digər sorğulara asan giriş əldə etməyə imkan verir.
4. Bağlı Əlaqələrdən istifadə edin
Eyni proqram bir-biri ilə əməkdaşlıq edə bilən iki və ya daha çox əlaqəni aça bilsə, o, blokadalar yaratmaz. Buna görə də Bağlı bağlantılardan istifadə etmək tövsiyə olunur.
Kilidlər üzərində işləyərkən qarşılaşa biləcəyiniz yeganə əngəl deyil SQL Server verilənlər bazası. Əslində hadisələr sql korrupsiyası sizin kədərinizə səbəb olma ehtimalı daha yüksəkdir. Məlumat itkisi ssenarisinin qarşısını almaq üçün güclü bir bərpa vasitəsinə investisiya qoyun DataNumen SQL Recovery.
Müəllif Giriş:
Viktor Saymon məlumatların bərpası üzrə mütəxəssisdir DataNumendaxil olmaqla məlumatların bərpası texnologiyaları üzrə dünya lideri olan , Inc mdb bərpası və sql bərpa proqram məhsulları. Ətraflı məlumat üçün ziyarət edin https://www.datanumen.com/