SQL Server, Transactions-object

Van toepassing op:SQL Server

Het Transactions-object in Microsoft SQL Server biedt tellers om het aantal actieve transacties in een instantie van de Database Engine te monitoren, en de effecten van die transacties op bronnen zoals de snapshot isolation rijversie-opslag in tempdb. Transacties zijn logische eenheden van werk; een reeks bewerkingen die ofwel allemaal moeten slagen of allemaal uit een database moeten worden verwijderd om de logische integriteit van de data te behouden. Alle wijzigingen van gegevens in SQL Server-databases worden uitgevoerd in transacties.

Wanneer een database is ingesteld om snapshot-isolatieniveau toe te staan, moet SQL Server een registratie bijhouden van de wijzigingen die aan elke rij in een database zijn aangebracht. Elke keer dat een rij wordt gewijzigd, wordt een kopie van de rij zoals die bestond vóór de wijziging geregistreerd in een rijversieopslag in tempdb. Veel van de tellers in het Transacties-object kunnen worden gebruikt om de grootte en groeisnelheid van de rijversie-opslag in tempdbte monitoren.

De Transactions-objecttellers rapporteren alle transacties in één instantie van de Database Engine.

Deze tabel beschrijft de SQLServer:Transactions-tellers .

SQL Server transactietellers Description
Vrije ruimte in tempdb (KB) De hoeveelheid ruimte (in kilobytes) beschikbaar in tempdb. Er moet voldoende vrije ruimte zijn om zowel de snapshot isolation level versieopslag als alle nieuwe tijdelijke objecten die in deze instantie van de Database Engine zijn aangemaakt, te bevatten.
Langste transactie-uitvoeringstijd De tijd (in seconden) sinds het begin van de transactie die langer actief is dan elke andere huidige transactie. Deze teller toont alleen activiteit wanneer de database onder read committed snapshot isolatieniveau staat. Het registreert geen activiteit als de database zich op een ander isolatieniveau bevindt.
NonSnapshot-versietransacties Het aantal momenteel actieve transacties dat geen snapshot isolatieniveau gebruikt en datawijzigingen heeft doorgevoerd die rijversies in de tempdb versieopslag hebben gegenereerd.
Momentopnametransacties Het aantal momenteel actieve transacties met behulp van het snapshot-isolatieniveau.

Opmerking: De Snapshot Transactions-objectteller reageert wanneer de eerste data-toegang plaatsvindt, niet wanneer de BEGIN TRANSACTION instructie wordt uitgegeven.
Transacties Het aantal momenteel actieve transacties van alle soorten.
Update-conflictratio Het percentage van die transacties dat het snapshot-isolatieniveau gebruikt en dat op het laatste moment updateconflicten heeft ondervonden. Een updateconflict treedt op wanneer een snapshot-isolatieniveautransactie probeert een rij te wijzigen die voor het laatst is aangepast door een andere transactie die niet was gecommitteerd toen de snapshot-isolatieniveautransactie begon.
Update conflictratiobasis Alleen voor intern gebruik.
Update Snapshot Transacties Het aantal momenteel actieve transacties gebruikt het snapshot-isolatieniveau en heeft gewijzigde gegevens.
Versie-opruimsnelheid (KB/s) De snelheid (in kilobytes per seconde) waarmee rijversies uit de snapshot-isolatieversie-opslaan worden opgeslagen in tempdb.
Versiegeneratiesnelheid (KB/s) De snelheid (in kilobytes per seconde) waarmee nieuwe rijversies worden toegevoegd aan de snapshot isolatieversie, wordt opgeslagen in tempdb.
Versie Store Grootte (KB) De hoeveelheid ruimte (in kilobytes) die tempdb wordt gebruikt om snapshot-isolatieniveau-rijversies op te slaan.
Versie Aantal eenheden Bewaar Het aantal actieve allocatie-eenheden in de snapshot-isolatieversie wordt opgeslagen in tempdb.
Versie Store-eenheidscreatie Het aantal allocatie-eenheden dat sinds het starten van de instantie van de Database Engine in de snapshot isolation store is aangemaakt.
Versie-opslagunit afkorting Het aantal allocatie-eenheden dat sinds het starten van de instantie van de Database Engine uit de snapshot isolatieopslag is verwijderd.

Example

U gaat de prestatiemeteritems voor query's in dit object verkennen met behulp van deze T-SQL-query in de sys.dm_os_performance_counters dynamische beheerweergave:

SELECT * FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Transactions%';