Aanmelden met Microsoft
Meld u aan of maak een account.
Hallo,
Selecteer een ander account.
U hebt meerdere accounts
Kies het account waarmee u zich wilt aanmelden.

Microsoft distribueert Oplossingen voor Microsoft SQL Server 2005, 2008 en 2008 R2 als één downloadbaar bestand. Omdat de fixes cumulatief zijn, bevat elke nieuwe release alle hotfixes en alle beveiligingscorrecties die zijn opgenomen in de vorige SQL Server 2005, 2008 en 2008 R2-fixrelease.

Symptomen

Neem het volgende scenario:

  • U installeert Microsoft SQL Server 2005, Microsoft SQL Server 2008 of Microsoft SQL Server 2008 R2 op een computer.

  • Een of meer databases bevinden zich in het volledige of bulksgewijs geregistreerde herstelmodel.

  • De aanvankelijke grootte van een transactielogboekbestand voor de database is klein. Het transactiebestand wordt echter groter.

  • De toename van de automatische groei van het transactielogboekbestand is geconfigureerd op een kleine grootte. De toename van de automatische groei is bijvoorbeeld geconfigureerd op één megabyte of tot één procent. Of u verhoogt het transactielogboekbestand met behulp van een kleine handmatige groei.

  • Het transactielogboekbestand groeit met de kleine toename. Na een tijdje is het transactielogboekbestand groot.

    Het transactielogboekbestand groeit bijvoorbeeld van honderd megabytes tot tien gigabytes. Het transactielogboekbestand groeit met één megabyte in elke groei.

In dit scenario kunnen de volgende problemen optreden:

  • Databaseherstel is traag wanneer de database wordt gestart als er veel werk moet worden hersteld.

    Een transactie is bijvoorbeeld lange tijd in behandeling. Of veel transacties die klein zijn, worden niet doorgevoerd wanneer de SQL Server wordt afgesloten of opnieuw wordt gestart. In dit geval ontvangt u mogelijk een fout voor een lange geschatte hersteltijd in de analysefase, in de ongedaan maken-fase of in de fase voor opnieuw uitvoeren. De fout lijkt op het volgende en wordt vastgelegd in het SQL Server 2005-foutenlogboekbestand:

    Analyse van database 'mydatabase' (7) is 0% voltooid (ongeveer 1234 seconden resterend). Dit is alleen een informatiebericht. Er is geen gebruikersactie vereist.

  • Databaseherstel is traag wanneer een volledig back-upbestand van de database en een extra transactielogboekreeks worden hersteld als de database online wordt gebracht.

    Opmerking Als u de database online wilt brengen tijdens de herstelbewerking, gebruikt u de syntaxis WITH RECOVERY of de WITH STANDBY = <opties> syntaxis.

  • Herstel van databasespiegeling is traag op een partnerserver in het spiegelingspaar.

  • De voortgang van de logboeklezeragent voor transactionele replicatie is traag voor de volgende bewerkingen:

    • Het transactielogboek van een uitgeversdatabase wordt geparseerd.

    • Er wordt een opdracht toegevoegd aan een distributiedatabase.

    • De transacties worden gerepliceerd.

  • Trage prestaties treden op wanneer een momentopname van een database wordt gemaakt als er veel transacties worden geregistreerd of als de transactielogboeken lang actief blijven. Dit probleem treedt op omdat de momentopname herstel moet uitvoeren en de transactielogboeken moeten worden teruggedraaid.

  • Trage prestaties treden op wanneer u de DBCC CHECKDB-syntaxis gebruikt om een verborgen databasemomentopname te maken die de momentopname van de database volledig moet herstellen om de consistentiecontroles uit te voeren.

Oorzaak

Deze problemen treden op omdat de virtuele logboekbestanden (VLF's) in een transactielogboekbestand trage prestaties kunnen veroorzaken wanneer SQL Server deze VLF's scant tijdens de volgende bewerkingen:

  • Databaseherstel

  • Databasespiegeling

  • Momentopname van database

  • Activiteiten van logboeklezer voor database transactionele replicatie

Wanneer een transactielogboekbestand voor een database wordt uitgebreid met kleine stappen tijdens extreme groeiomstandigheden, zijn duizenden tot honderdduizenden VLF's aanwezig in één set transactielogboekbestanden (.ldf). Grote logboekgroei met grote stappen creëert echter slechts verschillende VLF's ter vergelijking. Een aantal kan bijvoorbeeld kleiner zijn dan 100 VLF's.

Opmerking De VLF's zijn de afdelingen of segmenten die intern worden gebruikt door SQL Server in het transactielogboekbestand.
 

Oplossing

Cumulatieve update-informatie

SQL Server 2008 R2


De oplossing voor dit probleem is voor het eerst uitgebracht in cumulatieve update 6. Voor meer informatie over het verkrijgen van dit cumulatieve updatepakket voor SQL Server 2008 R2, klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:

2489376 Cumulatieve updatepakket 6 voor SQL Server 2008 R2 Opmerking Omdat de builds cumulatief zijn, bevat elke nieuwe fixrelease alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige SQL Server 2008 R2-fixrelease. We raden u aan om de meest recente fixrelease met deze hotfix toe te passen. Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie:

981356 De SQL Server 2008 R2-builds die zijn uitgebracht na SQL Server 2008 R2 is uitgebracht

SQL Server 2008 Service Pack 1

De oplossing voor dit probleem is voor het eerst uitgebracht in cumulatieve update 12 voor SQL Server 2008 Service Pack 1.

Opmerking Omdat de builds cumulatief zijn, bevat elke nieuwe fixrelease alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige SQL Server 2008-fixrelease. Microsoft raadt u aan om de meest recente oplossingsrelease met deze hotfix toe te passen. Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie:

970365 De SQL Server 2008-builds die zijn uitgebracht nadat SQL Server 2008 Service Pack 1 is uitgebracht, microsoft SQL Server 2008-hotfixes worden gemaakt voor specifieke SQL Server servicepacks. U moet een hotfix SQL Server 2008 Service Pack 1 toepassen op een installatie van SQL Server 2008 Service Pack 1. Elke hotfix die in een SQL Server servicepack wordt geleverd, wordt standaard opgenomen in het volgende SQL Server servicepack.

SQL Server 2008 Service Pack 2


De oplossing voor dit probleem is voor het eerst uitgebracht in cumulatieve update 2 voor SQL Server 2008 Service Pack 2.

Opmerking Omdat de builds cumulatief zijn, bevat elke nieuwe fixrelease alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige SQL Server 2008-fixrelease. Microsoft raadt u aan om de meest recente oplossingsrelease met deze hotfix toe te passen. Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie:

2402659 De SQL Server 2008-builds die zijn uitgebracht nadat SQL Server 2008 Service Pack 2 is uitgebracht, microsoft SQL Server 2008-hotfixes worden gemaakt voor specifieke SQL Server servicepacks. U moet een hotfix SQL Server 2008 Service Pack 2 toepassen op een installatie van SQL Server 2008 Service Pack 2. Elke hotfix die in een SQL Server servicepack wordt geleverd, wordt standaard opgenomen in het volgende SQL Server servicepack.

SQL Server 2005 Service Pack 3

De oplossing voor dit probleem is voor het eerst uitgebracht in cumulatieve update 13 voor SQL Server 2005 Service Pack 3.

Opmerking Omdat de builds cumulatief zijn, bevat elke nieuwe fixrelease alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige SQL Server 2005-fixrelease. Microsoft raadt u aan om de meest recente oplossingsrelease met deze hotfix toe te passen. Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie:

960598 De SQL Server 2005-builds die zijn uitgebracht nadat SQL Server 2005 Service Pack 3 is uitgebracht, microsoft SQL Server 2005-hotfixes worden gemaakt voor specifieke SQL Server servicepacks. U moet een hotfix SQL Server 2005 Service Pack 3 toepassen op een installatie van SQL Server 2005 Service Pack 3. Elke hotfix die in een SQL Server servicepack wordt geleverd, wordt standaard opgenomen in het volgende SQL Server servicepack.
 

SQL Server 2005 Service Pack 4

De oplossing voor dit probleem is voor het eerst uitgebracht in cumulatieve update 1 voor SQL Server 2005 Service Pack 4.

Opmerking Omdat de builds cumulatief zijn, bevat elke nieuwe fixrelease alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige SQL Server 2005-fixrelease. Microsoft raadt u aan om de meest recente oplossingsrelease met deze hotfix toe te passen.

U moet een hotfix SQL Server 2005 Service Pack 4 toepassen op een installatie van SQL Server 2005 Service Pack 4. Elke hotfix die in een SQL Server servicepack wordt geleverd, wordt standaard opgenomen in het volgende SQL Server servicepack.

Status

Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.

Tijdelijke oplossing

Installeer deze hotfix en start SQL Server de herstelprestaties mogelijk verbeteren. De prestaties kunnen bijvoorbeeld worden verbeterd voor de volgende bewerkingen nadat u deze hotfix hebt geïnstalleerd en SQL Server opnieuw hebt opgestart:

  • Databaseherstel

  • Databasespiegeling

  • Momentopname van database

  • Activiteiten van logboeklezer voor database transactionele replicatie


Als u deze hotfix niet kunt installeren, kunt u de volgende tijdelijke oplossingen uitvoeren om een bestaand probleem te verhelpen en een toekomstige gebeurtenis te voorkomen.

Een bestaand probleem oplossen

  • Wacht tot de herstel- of herstelbewerking is voltooid

    Als u een niet-herstelde database hebt die de trage prestaties ondervindt bij het herstellen of herstellen van de database, moet u mogelijk wachten tot de herstel- of herstelbewerking is voltooid. U ziet bijvoorbeeld de offlinestatus of de herstellende status in SQL Server Management Studio (SSMS) voor een niet-herstelde database. Het stoppen van SQL Server biedt meestal geen verlichting voor een traag herstel en kan meer tijd in beslag nemen om dezelfde herstelanalysefase, de fase voor opnieuw uitvoeren of ongedaan maken te herhalen.

  • Vermijd het herstellen van de transactielogboekreeks die duizenden VLF's

    bevat Als u de trage prestaties ervaart terwijl u een database herstelt en herstelt met behulp van een back-upbestand, kunt u voorkomen dat u de transactielogboekreeksen herstelt die duizenden VLF's bevatten. Gebruik de volgende instructie om de kolommen FirstLSN en LastLSN te zien in de back-upbestanden van logboeken om het back-upbestand te identificeren met de meeste virtuele logboekbestanden:
    RESTORE HEADERONLY FROM DISK='C:\folder\file.trn'

    U kunt ervoor kiezen om te voorkomen dat de logboekback-upbestanden worden hersteld. U kunt ook de instructie STOP AT gebruiken in de opdrachten RESTORE om de sterk gefragmenteerde onderdelen van de transactielogboeken te voorkomen. Als u de logboekreeksen niet volledig herstelt naar het meest recente tijdstip tijdens een scenario voor foutherstel, treedt er gegevensverlies op in uw database SQL Server. Dit gegevensverlies treedt op omdat niet alle transacties worden bewaard. Daarom is er een zakelijke afwegingsbeslissing. U kunt een zeer gefragmenteerd transactielogboek volledig herstellen. Deze bewerking kan echter vele uren duren. U kunt ook de instructie STOP AT in het herstel gebruiken om het herstel te stoppen vóór het maximaal gefragmenteerde deel van het logboek. Ontbrekende transacties die u weglaat, gaan echter verloren.

    Opmerking Zonder deze hotfix te installeren, is er meestal geen veilig gebruik voor versneld herstel nadat u SQL Server opnieuw hebt opgestart. SQL Server moet de lijst met VLF's zoeken om de logboekbestanden te analyseren, voltooide transacties opnieuw uit te voeren en vervolgens onvolledige transacties ongedaan maken om het herstel te voltooien om de database veilig online te brengen. U kunt transacties niet veilig overslaan tijdens het herstel.

Voorkomen dat een gebeurtenis zich in de toekomst voordoet

  • De toename van automatische groei van de database instellen op een geschikte grootte

    Als de grootte van de toename van automatische groei te klein is, zijn er veel VFS's (Virtual Log Files) en kunnen er trage prestaties optreden in SQL Server. Als de grootte van de toename van automatische groei te groot is, moeten query's die ervoor zorgen dat de transactielogboeken automatisch groeien, mogelijk lang wachten om een groei te voltooien. Daarom kan er een time-outfout optreden in SQL Server. U kunt deze problemen omzeilen door de grootte van de toename van automatische groei voor uw database in te stellen op de juiste grootte.

  • Elimineer het grote aantal VLF's en gebruik een handmatige groei

    Als veel VLF's zich in het transactielogboek bevinden, verkleint u de grootte van het transactielogboek en verhoogt u deze voordat de piekactiviteiten worden uitgevoerd om aan de vraag te voldoen met behulp van een handmatige groei. Het transactielogboek neemt bijvoorbeeld weer toe naar een redelijke gemiddelde grootte in een grote toename of in één handmatige groei. Daarom bereikt de grootte van het transactielogboek een piekcapaciteit en worden de back-upbestanden van het logboek regelmatig en periodiek gepland. Daarnaast kan het transactielogboek worden afgekapt en kunnen de VLF's voor het transactielogboek opnieuw worden gebruikt in een cyclus.

  • Het transactielogboek handmatig

    verkleinen en vergroten Als u een logboek met te veel VLF's wilt corrigeren, volgt u deze stappen om het logboek te verkleinen en handmatig te vergroten:

    1. Als de database zich in een volledig of bulksgewijs geregistreerd herstelmodel bevindt, moet u een back-up maken van het transactielogboek om toe te staan dat de actieve VLF's worden afgekapt en opnieuw worden gebruikt. BACKUP LOG databasename TO DISK='C:\folder\log_backupfile.trn'
      Ga naar de volgende website van Microsoft Developer Network (MSDN) voor meer informatie over het maken van een back-up van het transactielogboekbestand met behulp van SSMS:

      Een back-up maken van het transactielogboekbestand met behulp van SSMSGa naar de volgende MSDN-website voor meer informatie over het maken van een back-up van het transactielogboekbestand met behulp van Transact-SQL-instructies:

      Een back-up maken van het transactielogboekbestand met behulp van Transact-SQL-instructies

    2. Voer een van de volgende instructies uit om de logische naam van het transactielogboekbestand te bepalen.
      Instructie 1
      exec sp_helpfile instructie 2
      selecteer * in sys.sysfiles Gebruik de volgende code: DBCC SHRINKFILE(transactionloglogicalfilename, TRUNCATEONLY) om de grootte van het transactielogboekbestand te verkleinen tot de gewenste grootte

    3. U kunt de grootte van het transactielogboekbestand vergroten tot de juiste grootte. We raden u aan om de grootte van het transactielogboekbestand te laten groeien tot de normale piekgrootte. Daarom wordt de toename van automatische groei vermeden. Als u de grootte van het transactielogboek wilt instellen, gebruikt u de pagina Database-eigenschappen in SSMS of gebruikt u de volgende ALTER DATABASE-syntaxis:MODIFY FILE ( NAME = transactionloglogicalfilenae, SIZE=newtotalsize MB)
      Ga naar de volgende MSDN-website voor meer informatie over het vergroten van de grootte van een database in SSMS:

      De grootte van een database in SSMS vergrotenGa naar de volgende MSDN-website voor meer informatie over de syntaxis van ALTER DATABASE MODIFY FILE:

      Algemene informatie over DE SYNTAXIS VAN ALTER DATABASE MODIFY FILE

Meer informatie

U kunt het aantal VLF-segmenten controleren door het SQL-foutenlogboekbestand te controleren en vervolgens het logboekreeksnummer (LSN) in elk back-upbestand voor transactielogboeken te vinden. De eerste cijfers vóór het dubbele puntsymbool in de LSN's komen overeen met het nummer van de LSN.

Het eerste getal in het eerste informatieve bericht voor de LSN is bijvoorbeeld 1. Het eerste getal in het tweede informatieve bericht voor de LSN is echter 100001. In dit scenario zijn er 100.000 VLF's die worden gebruikt tussen het tijdstip van het eerste informatieve bericht en het tweede informatieve bericht. Daarom lijkt het vastgelegde gefragmenteerde transactielogboek met veel VFS's (Virtual Log Files) op het volgende:
 

{Er is een back-up van het logboek. Database: mydbname, aanmaakdatum(tijd): 2010/07/08(12:36:46), eerste LSN: 1:5068:70, laatste LSN: 1:5108:1, aantal dumpapparaten: 1, apparaatgegevens: (FILE=1, TYPE=DISK: {'C:\folder\logbackup1.trn'}). Dit is alleen een informatiebericht. Er is geen gebruikersactie vereist.

Er is een back-up van het logboek. Database: mydbname, aanmaakdatum(tijd): 2010/07/08(15:36:46), eerste LSN: 100001:5108:1, laatste LSN: 100002:5108:1, aantal dumpapparaten: 1, apparaatgegevens: (FILE=2, TYPE=DISK: {'C:\folder\logbackup2.trn'}). Dit is alleen een informatiebericht. Er is geen gebruikersactie vereist.}

De volgende tabel bevat meer informatie over de producten of hulpprogramma's die automatisch controleren op de voorwaarde die wordt beschreven in de sectie Symptomen in uw exemplaar van SQL Server en in de versies van SQL Server waarop de regel wordt geëvalueerd.
 

Regelsoftware

Regeltitel

Beschrijving van regel

Productversies waarvoor de regel wordt geëvalueerd

System Center Advisor

SQL Server met transactionele replicatie kunnen de prestaties van de Log Reader-agent worden beïnvloed door de grootte van het transactielogboek of het aantal VLF's

In deze SQL Server instantieadviseur de aanwezigheids transactionele replicatie met een aanzienlijk groter aantal VLF's of TLOG gedetecteerd. De prestaties van de Log Reader-agent worden negatief beïnvloed door de grootte van het transactielogboek of het aantal VLF's. Verklein de grootte van het transactielogboek en het aantal VLF's om de prestaties van de logboeklezeragent te verbeteren.

SQL Server 2008

SQL Server 2008 R2

SQL Server 2012



 

Verwijzingen

Ga naar de volgende MSDN-website voor meer informatie over de fysieke architectuur van het transactielogboek:

Algemene informatie over de fysieke architectuur van het transactielogboek

Ga naar de volgende MSDN-website voor meer informatie over logboekreeksnummers (LSN):

Algemene informatie over logboekreeksnummers

Ga naar de volgende MSDN-website voor meer informatie over de fout 1413 wanneer databasespiegeling wordt gestart:

Algemene informatie over de fout 1413 wanneer databasespiegeling wordt gestart

Ga naar de volgende MSDN-website voor meer informatie over hoe een logboekbestandsstructuur de hersteltijd van de database kan beïnvloeden:

Hoe een logboekbestandsstructuur van invloed kan zijn op de hersteltijd

van de database Ga naar de volgende MSDN-website voor meer informatie over de VLF's voor transactielogboeken:

Algemene informatie over het transactielogboekbestand

Ga naar de volgende MSDN-website voor meer informatie over het maken van een momentopname van een database:

Een momentopname van een database makenKlik voor meer informatie over het incrementele onderhoudsmodel voor SQL Server op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:

935897 Er is een incrementeel onderhoudsmodel beschikbaar van het SQL Server team om hotfixes te leveren voor gerapporteerde problemenVoor meer informatie over het naamgevingsschema voor SQL Server updates klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:

822499Nieuw naamgevingsschema voor Microsoft SQL Server software-updatepakketten Voor meer informatie over software-updateterminologie klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:

824684 Beschrijving van de standaardterminologie die wordt gebruikt voor het beschrijven van Microsoft-software-updates

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.

Was deze informatie nuttig?

Hoe tevreden bent u met de taalkwaliteit?
Wat heeft uw ervaring beïnvloed?
Als u op Verzenden klikt, wordt uw feedback gebruikt om producten en services van Microsoft te verbeteren. Uw IT-beheerder kan deze gegevens verzamelen. Privacyverklaring.

Hartelijk dank voor uw feedback.

×