4 belangrijke tips om deadlocks in SQL Server

Het artikel bevat belangrijke tips om deadlocks in te voorkomen SQL Servers

Hoewel SQL Server is de afgelopen jaren getuige geweest van een enorme evolutie, maar gebruikers worden nog steeds regelmatig geconfronteerd met impasses. Idealiter zou een databaseserver meerdere verzoeken moeten kunnen ophalen, maar dit resulteert vaak in blokken. De conflicten waarbij een proces wacht op de vrijgave van een andere bron, worden blokken genoemd. En dan zijn er deadlocks.Vermijd deadlocks tijdens het werken met SQL Server

Stel je een situatie voor waarin de ene persoon de tweede vraagt ​​om een ​​bron vrij te geven en de tweede wacht tot de eerste wordt vrijgegeven. Als gevolg hiervan zitten beide vast in een impasse. Geen van de processen kan worden voortgezet, aangezien beide zijn vergrendeld en de andere de bron of vergrendeling moet vrijgeven.

Tijdens het werken met SQL servers, impasses komen vrij vaak voor en kunnen het hele proces belemmeren. Het is niet mogelijk om impasses helemaal te vermijden, maar men kan de kans op een impasse zeker minimaliseren.

Deadlock-problemen

Deadlocks binnen SQL ServerVoordat we ingaan op tips om impassen te minimaliseren, kijken we eerst even naar enkele van de meest voorkomende oorzaken van impassen. SQL serverSystemen zijn ontworpen om deadlocks automatisch te detecteren, maar als ze worden gemeld, moeten databasebeheerders proberen de oorzaak ervan te achterhalen. De meest voorkomende oorzaak is een slecht databaseontwerp, zonder de juiste validatie en testen, en een gebrek aan indexering. Sommige deadlocks worden ook veroorzaakt door slecht ontworpen query's.

Opgemerkt moet worden dat deadlocks de prestaties rechtstreeks beïnvloeden en de verwerking van de database kunnen stoppen.

1. Houd dezelfde volgorde aan

Deadlocks zijn onvermijdelijk als de resources niet in een goed gedefinieerde volgorde worden verwerkt. Om deadlocks te minimaliseren, moeten alle gelijktijdige transacties objecten in een goed gedefinieerde volgorde benaderen. Databasebeheerders (DBA's) moeten duidelijke regels opstellen voor de toegang tot databaseobjecten. Meestal voeren lockmonitors een deadlockcontrole uit en selecteren ze, indien gedetecteerd, een deadlockslachtoffer om de bijbehorende transactie terug te draaien. Hierdoor worden alle locks vrijgegeven en kunnen eerdere sessies hun proces voortzetten. Deadlockslachtoffers worden gekozen op basis van de deadlockprioriteit die door de server is ingesteld of de terugdraaikosten.

2. Beperking tijdens transactie

U kunt de gebruikers beperken om alle soorten gegevens in te voeren wanneer de transactie wordt verwerkt, en u kunt de gegevens voorafgaand aan de transactie bijwerken om impasses te voorkomen. Probeer ook de gebruikersinteractie tot een minimum te beperken, omdat dit de snelheid beïnvloedt. Idealiter zouden transacties kort en snel moeten zijn om impasses te voorkomen. Een applicatie moet zo worden ontworpen dat deze de sloten in de kortst mogelijke tijd grijpt en ze zo snel mogelijk weer vrijgeeft.

3. NOLOCK-tip

Wanneer iemand een query uitvoert op een tabel op het standaard SQL-isolatieniveau, wordt de tabel vergrendeld en moeten de volgende query's wachten op de release. NOLOCK Hint is handig in dergelijke situaties omdat het het vergrendelen van tabellen opheft en andere queries gemakkelijk toegang krijgen.

4. Gebruik gebonden verbindingen

Als dezelfde applicatie twee of meer verbindingen kan openen die met elkaar kunnen samenwerken, zou dit geen impasses veroorzaken. Daarom wordt geadviseerd om gebonden verbindingen te gebruiken.

Deadlocks zijn niet het enige gedoe dat u waarschijnlijk zult ervaren tijdens het werken aan een SQL Server database. In feite incidenten van sql corruptie hebben meer kans om u verdriet te bezorgen. Om een ​​scenario voor gegevensverlies te voorkomen, investeert u in een krachtig herstelprogramma zoals DataNumen SQL Recovery.

Auteur Introductie:

Victor Simon is een expert op het gebied van gegevensherstel in DataNumen, Inc., de wereldleider in technologieën voor gegevensherstel, waaronder mdb herstel en sql-herstelsoftwareproducten. Voor meer informatie bezoek https://www.datanumen.com/

Reacties zijn gesloten.