De geblokkeerde kolommen in de tabel sysprocesses is gevuld voor hendel wacht nadat u SQL Server 2000 SP4 hebt geïnstalleerd


Samenvatting


Nadat u Microsoft SQL Server 2000 Service Pack 4 (SP4) hebt geïnstalleerd, ziet u dat de kolom geblokkeerd in de systeemtabel sysprocesses voor wachten op de hendel naast vergrendeling wacht is gevuld. Soms ziet u korte perioden wanneer een afzonderlijk serverproces-ID (SPID) wordt gerapporteerd als zelf te blokkeren. Dit is te verwachten gedrag.

Meer informatie


Sloten worden gebruikt voor toegang tot gegevens in de cache-pagina's en andere objecten in het geheugen te synchroniseren. Meestal sloten slechts korte tijd worden vastgehouden en wachttijden hendel dienovereenkomstig klein zijn. SQL Server 2000 SP4 diagnostische gegevens voor het oplossen van gevallen waarin een SPID een lange tijd voor een slot wacht toegevoegd. Deze diagnostische gegevens dat de kolom geblokkeerd in de systeemtabel sysprocesses aangepast aan de eigenaar van een klinkinrichting die hendel verzoek van een andere SPID blokkeert. Voordat u SQL Server 2000 SP4 is alleen de geblokkeerde kolom gevuld wanneer lock wachten blokkering veroorzaakt.



De situaties waarin een hendel wordt gevraagd deze wijziging in SQL Server 2000 SP4 niet gewijzigd. Bovendien wordt deze wijziging niet de situaties waarin een SPID wordt geblokkeerd door een hendel gewijzigd. Deze wijziging is alleen van invloed op de manier waarop in welke hendel wacht zijn gemeld in de systeemtabel sysprocesses .

Hendel eigendom is alleen voor hendels in exclusieve (EX) of bijwerken (vergrendelingsmodus omhoog) bijgehouden. Eigendom wordt niet bijgehouden voor sloten die in de modus voor gedeeld (SH) hendel. Dit betekent dat de geblokkeerde kolommen wordt niet gevuld voor bepaalde aanvragen hendel, zelfs nadat u SQL Server 2000 SP4 is geïnstalleerd.

De meeste van de tijd, kunt u negeren de waarde in de kolom geblokkeerd als de volgende voorwaarden voldaan wordt:
  • De waarde in de kolom wachttijd is laag.
  • De waittype van de SPID is een waittype met slot.
Voor meer informatie over de mogelijke waarden in de kolom waittype klikt u op het volgende artikel in de Microsoft Knowledge Base:

822101 de waittype en lastwaittype kolommen in de tabel sysprocesses in SQL Server 2000

Wanneer een SPID een i/o-databasepagina wachten is, ziet u dat de kolom geblokkeerd kort rapporteert de SPID is zelf blokkeren. Dit gedrag is een neveneffect van de manier waarop dat sloten voor i/o-bewerkingen voor data-pagina's worden gebruikt. Wanneer een thread een i/o-aanvraag verzendt, ontvangt de SPID die i/o-verzoek verzendt een hendel op de pagina. Alle SQL Server 2000 i/o-bewerkingen zijn asynchroon. De SPID zal daarom proberen te verkrijgen van een andere hendel op dezelfde pagina als de SPID die de i/o-aanvraag verzonden tot de aanvraag wachten moet te voltooien. Deze tweede hendel wordt geblokkeerd door de hendel van de eerste. Daarom geeft de kolom geblokkeerd de SPID is zelf blokkeren. Als de i/o-aanvraag is voltooid, wordt het eerste slot uitgebracht. Vervolgens is de tweede latch-aanvraag toegekend.

Bijvoorbeeld, treedt de volgende voorwaarden:
  1. SPID 55 wil lezen van een gegevenspagina die niet in de buffergroep bestaat.
  2. 55 SPID krijgt een EX-hendel op de pagina. Omdat de pagina niet bestaat, maar in het geheugen, de aangevraagde vergrendelingsmodus is excl. De vergrendelingsmodus EX zorgt ervoor dat andere SPID's die u ook kunnen toegang krijgen tot de pagina om te wachten op de i/o-aanvraag te voltooien. De vergrendelingsmodus EX voorkomt ook dat andere SPID's een dubbele i/o-verzoek te verzenden voor dezelfde pagina.
  3. SPID 55 problemen i/o-verzoek naar de pagina van de schijf te lezen.

  4. SPID 55 wil de pagina lezen, moet SPID 55 wachten totdat de i/o-aanvraag te voltooien. Te wachten op de i/o-aanvraag te voltooien, probeert SPID 55 te verkrijgen van een andere hendel met de gedeelde (SH) vergrendelingsmodus op dezelfde pagina. Omdat een hendel EX al opgedaan SH hendel verzoek is geblokkeerd en de SPID is geschorst. Omdat de hendel van de EX die de aanvraag SH hendel blokkeert ook door 55 SPID hebt aangeschaft, is tijdelijk de SPID gerapporteerd als zelf te blokkeren.

  5. Als de i/o-aanvraag is voltooid, wordt de hendel op de pagina van de EX uitgebracht.
  6. De release van de hendel van de EX geeft het slot SH tot 55 SPID.

  7. 55 van de SPID kan de pagina nu lezen.

Tussen stap 4 en 5 geeft de tabel sysprocesses 55 SPID is geblokkeerd door zelf met een waittype van PAGEIOLATCH_-XX. In deze waittype, XX mogelijk SH, omhoog of excl. Dit probleem betekent dat SPID 55 een i/o-verzoek afgegeven en SPID 55 op de i/o-aanvraag wacht te voltooien.