Мақала тығырыққа тірелмеу үшін маңызды кеңестер ұсынады SQL Servers
Дегенмен SQL Server соңғы екі жылда үлкен эволюцияның куәгері болды, қолданушылар әлі күнге дейін тығырыққа тірелуде. Ең дұрысы, мәліметтер қорының сервері бірнеше сұранысты қайтарып алуы керек, бірақ ол көбіне блоктармен аяқталады. Бір процесс екінші ресурстың шығуын күтетін қақтығыстар блоктар деп аталады. Содан кейін Deadlocks бар.
Елестетіп көріңізші, бір адам екіншісінен ресурсты шығаруды сұрайды, ал екіншісі біріншінің шығуын күтеді. Нәтижесінде екеуі де тығырыққа тірелді. Процестің ешқайсысы жалғаспайды, өйткені екеуі де құлыптаулы, екіншісінен ресурстарды немесе құлыпты босатуды талап етеді.
Жұмыс істеу кезінде SQL servers, тұйықталу өте жиі кездеседі және олар бүкіл процеске кедергі келтіруі мүмкін. Тығырықтан мүлде аулақ болу мүмкін емес, бірақ тығырыққа тірелу мүмкіндігін барынша азайтуға болады.
Қиындық

Тұйықталулар өнімділікке тікелей әсер ететінін және мәліметтер базасын өңдеуді тоқтатуы мүмкін екенін ескеру қажет.
1. Тапсырысты бірдей сақтаңыз
Ресурстар нақты анықталған ретпен өңделмесе, тұйықталулар орын алуы мүмкін. Тұйықталуларды азайту үшін барлық бір мезгілдегі транзакциялар нысандарға нақты анықталған ретпен кіруі керек. Дерекқор деректер базасы нысандарына кіру үшін нақты ережелер жиынтығын жасауы керек. Әдетте құлыптау мониторлары тұйықталуларды тексеруді орындайды және анықталған кезде олар бір тұйықталу құрбанын таңдап, оның транзакциясын кері қайтарады. Осылайша, барлық құлыптар босатылады және алдыңғы сессияларға процесті жалғастыруға рұқсат етіледі. Тұйықталу құрбандары сервер белгілеген тұйықталу басымдығы немесе кері қайтару құны негізінде таңдалады.
2. Транзакция кезіндегі шектеу
Сіз транзакция өңделіп жатқан кезде пайдаланушыларға кез-келген деректерді енгізуге шектеу қоя аласыз және тығырыққа тіреліп қалмас үшін транзакцияға дейін деректерді жаңарта аласыз. Сондай-ақ, пайдаланушының өзара әрекеттесуін минималды деңгейлерде ұстауға тырысыңыз, себебі бұл жылдамдыққа әсер етеді. Ең дұрысы, тығырықтан құтылу үшін транзакциялар қысқа және жылдам болуы керек. Бағдарлама құлыптарды ең аз уақыт ішінде ұстап алатын және оларды мүмкіндігінше тез босататын етіп жасалуы керек.
3. NOLOCK кеңесі
SQL әдепкі оқшаулау деңгейіндегі кестеге қатысты біреу сұранысты іске қосқанда, кесте құлыпталып, келесі сұраулар шығарылымды күтуі керек. NOLOCK Hint осындай жағдайларда пайдалы, өйткені кестені құлыптауды болдырмауға мүмкіндік береді және басқа сұраулар оңай қол жетімді болады.
4. Шектелген байланыстарды қолданыңыз
Егер сол бағдарлама бір-бірімен ынтымақтастықта болатын екі немесе одан да көп қосылымдарды аша алса, онда ол тығырыққа тірелмейді. Сондықтан Bound байланыстарын қолдануға кеңес беріледі.
Тығырыққа түсу - сіз жұмыс істеу кезінде кездесетін жалғыз қиындық емес SQL Server дерекқор. Іс жүзінде SQL сыбайлас жемқорлық сізге қайғы-қасірет әкелуі мүмкін. Деректерді жоғалту сценарийін болдырмау үшін қуатты қалпына келтіру құралына салыңыз DataNumen SQL Recovery.
Автордың кіріспесі:
Виктор Саймон - деректерді қалпына келтіру бойынша сарапшы DataNumen, Соның ішінде деректерді қалпына келтіру технологиялары бойынша әлемдік көшбасшы болып табылатын Inc. mdb қалпына келтіру және SQL қалпына келтіру бағдарламалық жасақтама өнімдері. Қосымша ақпарат алу үшін кіріңіз https://www.datanumen.com/