Rakstā ir ieteikti svarīgi padomi, lai izvairītos no strupceļiem SQL Servers
Kaut gan SQL Server pēdējos pāris gados ir piedzīvojusi milzīgu attīstību, lietotāji joprojām regulāri saskaras ar strupceļu situāciju. Ideālā gadījumā datu bāzes serverim vajadzētu būt iespējai izgūt vairākus pieprasījumus, taču tas bieži vien rada blokus. Konfliktus, kuros viens process gaida cita resursa atbrīvošanu, sauc par blokiem. Un tad ir strupceļi.
Iedomājieties situāciju, kad viena persona lūdz otro atbrīvot resursu, bet otra gaida, kad pirmais atbrīvos. Rezultātā abi ir iestrēguši strupceļā. Neviens process nevar turpināties, jo abi ir bloķēti, un otrajam ir nepieciešams atbrīvot resursu vai bloķēt.
Strādājot ar SQL servers, strupceļi ir diezgan izplatīti, un tie var kavēt visu procesu. Nav iespējams pilnībā izvairīties no strupceļiem, taču noteikti var samazināt iespēju izveidot strupceļu.
Strupceļa problēmas

Jāatzīmē, ka strupceļi tieši ietekmē veiktspēju un var apturēt datu bāzes apstrādi.
1. Saglabājiet pasūtījumu nemainīgu
Strupceļi ir neizbēgami, ja resursi netiek apstrādāti precīzi noteiktā secībā. Lai samazinātu strupceļus, visiem vienlaicīgiem darījumiem ir jāpiekļūst objektiem precīzi noteiktā secībā. DBA ir jāizstrādā skaidrs noteikumu kopums piekļuvei datubāzes objektiem. Parasti bloķēšanas monitori veic strupceļa pārbaudi, un, kad tas tiek atklāts, tie atlasa vienu strupceļa upuri un atceļ tā darījumu. Tādējādi visas bloķēšanas tiek atbrīvotas, un iepriekšējām sesijām ir atļauts turpināt procesu. Strupceļa upuri tiek izvēlēti, pamatojoties uz servera noteikto strupceļa prioritāti vai atcelšanas izmaksām.
2. Ierobežojums darījuma laikā
Kad darījums tiek apstrādāts, varat ierobežot lietotāju ievadīšanu jebkāda veida datiem, un, lai izvairītos no strupceļiem, varat atjaunināt datus pirms darījuma. Centieties arī uzturēt lietotāju mijiedarbību līdz minimumam, jo tas ietekmē ātrumu. Ideālā gadījumā darījumiem jābūt īsiem un ātriem, lai izvairītos no strupceļiem. Lietojumprogramma jāveido tā, lai tā satvertu slēdzenes vismazāk nepieciešamajā laikā un pēc iespējas ātrāk tās atbrīvotu.
3. NOLOCK padoms
Kad kāds izpilda vaicājumu pret tabulu SQL noklusējuma izolācijas līmenī, tabula tiek bloķēta, un nākamajiem vaicājumiem ir jāgaida atbrīvošana. NOLOCK padoms ir noderīgs šādās situācijās, jo tas ļauj ignorēt galda bloķēšanu, un citiem jautājumiem ir viegli piekļūt.
4. Izmantojiet saistītos savienojumus
Ja viena un tā pati lietojumprogramma var atvērt divus vai vairākus savienojumus, kas var savstarpēji sadarboties, tas neradīs strupceļus. Tāpēc ieteicams izmantot saistītos savienojumus.
Strupceļš nav vienīgais apgrūtinājums, kuru, iespējams, varēsiet piedzīvot, strādājot pie SQL Server datu bāzē. Patiesībā sql korupcija visticamāk radīs jums skumjas. Lai izvairītos no datu zaudēšanas scenārija, ieguldiet jaudīgā atkopšanas rīkā, piemēram, DataNumen SQL Recovery.
Autora ievads:
Viktors Saimons ir datu atkopšanas eksperts DataNumen, Inc., kas ir pasaules līderis datu atkopšanas tehnoloģiju, tostarp mdb atkopšana un SQL atkopšanas programmatūras produkti. Lai iegūtu vairāk informācijas, apmeklējiet vietni https://www.datanumen.com/