SQL Server-blokkering in een database vindt plaats wanneer een transactie een bron vergrendelt en voorkomt dat een of meer verbindingen op dezelfde bron werken. De tweede verbinding moet wachten tot de vergrendeling wordt vrijgegeven voordat deze verder kan gaan. Dit wordt gedaan om de isolatiecomponent van ACID te waarborgen - wat betekent dat gelijktijdige transacties niet voor elkaar zichtbaar zijn totdat ze zijn voltooid. Blokkeren in SQL Server kan de prestaties in elke omgeving schaden.
Een van de taken die databasebeheerders doen, is de query identificeren die de blokkering veroorzaakt, deze verhelpen en vervolgens een stap verder gaan om de hoofdoorzaak vast te stellen. Het onderzoeken van de oorzaak, vooral achteraf, kan een zeer moeilijke taak zijn. Voor de meesten betekent dit een zeer tijdrovend proces van rooten via dynamische beheerweergaven van SQL Server, zoals s ys.dm_exec_requests of het uitvoeren van systeemprocedures zoals sp_who2 om details te achterhalen van de systeemproces-ID's (SPIDS) die bij de blockchain betrokken zijn. Spotlight Cloud kan uw inspanningen om deze blokkerende gebeurtenissen te identificeren aanzienlijk verminderen.
Databasecontrole gebruiken voor het identificeren van SQL Server-blokken
Vanaf het overzichtsdashboard biedt Spotlight Cloud een duidelijk beeld van de hele omgeving. Het toont in één oogopslag statistieken, waaronder sessietellingen, processen, geheugengebruik, schijfverbruik en wachttijden. Wat nog belangrijker is, het toont duidelijk blokkerende activiteit; in het midden van figuur 1 kun je duidelijk zien dat er momenteel twee geblokkeerde processen zijn.
Voor een DBA is het noodzakelijk om in de details te treden om blokkeringsproblemen op te lossen. Spotlight Cloud geeft ons de mogelijkheid om dieper in te gaan op meer sessiedetails door simpelweg het vervolgkeuzemenu te kiezen in Overzicht, zoals weergegeven in Afbeelding 2.
Met Spotlight Cloud kun je eenvoudig zien welke sessies zijn geblokkeerd en om welke uitspraken het gaat. In figuur 3 kunt u zien dat SPID 59 en 65 beide zijn geblokkeerd (aangegeven in oranje markering rond de status), wat overeenkomt met het aantal geblokkeerde personen. U zult ook merken dat Spotlight Cloud samenvattende details blijft geven over onze huidige instantiestatus, zodat we belangrijke tellers in de gaten kunnen houden terwijl we ons in prestatieproblemen storten.
Spotlight Cloud SQL Server Monitoring gebruiken om blokkeringsproblemen op te lossen
|
Figuur 3:Sessiesdashboard |
Het dashboard Sessies (zoals te zien in afbeelding 3) geeft ons essentiële informatie die we nodig hebben om het probleem op te lossen. Hier kunt u belangrijke informatie vinden, zoals welke gebruiker de instructies uitvoert, welke database wordt beïnvloed en wanneer de sessie wordt vermeld. De diepte van het gegeven detail is een realtime besparing voor die DBA's die snelle antwoorden nodig hebben op de oorzaak van de blokkering, zodat ze deze kunnen oplossen. Je ziet niet alleen dat je twee geblokkeerde overgangen hebt, maar we kunnen ook zien dat het beide UPDATE-statements zijn in dezelfde tabel die worden uitgevoerd door het Network Services-account tegen de Sales-database. De werkelijke verklaring wordt weergegeven in de rechterbenedenhoek. Ten slotte kunnen we zowel de actieve SPID als de SPID zien waardoor deze wordt geblokkeerd.
In de rechterbovenhoek van figuur 3, in blauwe tekst, vertelt Spotlight Cloud waar je heen moet in je onderzoek. Het product in elke laag geeft een duidelijk pad over hoe je nog dieper kunt duiken. Als u op de link Onderzoeken in Workload Analyzer klikt, kunt u zien wat SPID 61 heeft aangeroepen, wat toevallig een leadblocker is voor SPID 65.
Figuur 4:Workload Analyzer (hier willen we Blocked Sessions uitbreiden)
De Workload Analyzer geeft u een drilldown-dimensie waarmee u naar specifieke bronnen kunt rijden, zoals blokkeren. In figuur 4 kun je zien hoe we verder naar beneden duiken door op de twee uitvouwpijlen in de hoek van het gedeelte Geblokkeerde sessies te klikken.
Nu je weet om welke database het gaat, kun je wat verder graven. In de linkernavigatie kunt u inzoomen op de verkoopdatabase. Hier ziet u SPID 61 en 64 inclusief de huidige status. Beide systeemproces-ID's blokkeren en merk op dat SPID 59 nu ook wordt geblokkeerd door SPID 64. Deze weergave helpt ervoor te zorgen dat u de blokkering voor kunt blijven terwijl u doorgaat met onderzoeken.
In de onderste helft van figuur 5 kun je in de Blocked Session Mapping zien dat het je de details vertelt van SPID 61, wat in dit geval onze leadblocker is. De boosdoener is eigenlijk een onderdeel van een SQL Agent-taak die wordt uitgevoerd, wat logisch is op basis van de gebruiker die we hebben gevonden met het uitvoeren van de instructie. Als u zich herinnert dat dit de netwerkserviceaccount was, NT AUTHORITY\NETWORK SERVICE. In dit geval wordt de SQL Agent-service uitgevoerd onder deze specifieke set inloggegevens.
De volgende stap is om erachter te komen welke taken actief zijn en te kijken of u de taak kunt doden om de blokkering te stoppen. Normaal gesproken zou je naar SQL Server Management Studio gaan om SQL Agent te bekijken en de jobs te bekijken, maar Spotlight maakt het je gemakkelijk en geeft je ook een uitgebreid overzicht van jobs. U kunt dit vinden door op de pijl naast de woorden "Workload Analyzer" bovenaan te klikken, net zoals u deed toen u van Overzicht naar Sessies navigeerde.
Toekomstige SQL Server-blokkades voorkomen
Onderzoek naar blokkering kost tijd en soms, terwijl we een bepaald probleem onderzoeken, lost de blokkering zichzelf op. In dit geval is de taak die werd uitgevoerd voltooid en konden de geblokkeerde updates worden uitgevoerd. Hoewel het directe probleem niet meer bestaat, moet u toch blijven zoeken naar de oorzaak om ervoor te zorgen dat u het in de toekomst kunt voorkomen.
Aangezien u SPID 61 al hebt geïdentificeerd als de taak die werd uitgevoerd en omdat de tijd is verstreken, moet u nu naar de geschiedenis kijken. Om de geschiedenis te bekijken, wijzigt u eenvoudig het weergegeven datumbereik in het tijdbereik van de actieve blokkering. In Afbeelding 7 ziet u het datumbereik in de rechterhoek, u kunt op de vervolgkeuzelijst klikken en de tijden dienovereenkomstig aanpassen. Vervolgens wil je SPID 61 zoeken met behulp van de zoekfunctie. Elke omgeving is anders, dus wat u met deze informatie doet, hangt nu af. Of u de timing van de taak aanpast, enkele wijzigingen aanbrengt in indexen, code of configuraties, is geheel aan u.
Sommige blokken komen en gaan zo snel dat ze geen significant effect hebben op de prestaties. Als ze langer blijven, moeten we dit snel weten. Spotlight Cloud heeft een "langlopend slot"-alarm dat de gebruiker op de hoogte stelt van blokkades die niet verdwijnen.
Blokkeren is een symptoom van een aantal grotere problemen en er zijn vaak verschillende perspectieven nodig om tot de oorzaak te komen. Met de dimensie geblokkeerde objecten in de werkbelastinganalysator van Spotlight Cloud kan de gebruiker snel objecten vaststellen die de meeste blokkerende activiteit genereren voor een bepaalde instantie.
Het identificeren van blokkades en het onderzoeken van de oorzaak is het moeilijkste voor DBA's. Spotlight Cloud Professional stelt ons in staat om snel en efficiënt bij deze informatie te komen. Wanneer de tijd het actieve probleem oplost, stelt Spotlight Cloud ons in staat om te blijven onderzoeken om een oorzaak te vinden en geeft het ons uiteindelijk de informatie die we nodig hebben om weloverwogen beslissingen te nemen over hoe we toekomstige gebeurtenissen kunnen voorkomen.
Wil je Spotlight Cloud in actie zien? Start vandaag nog uw gratis proefperiode van 30 dagen.