CHECKPOINT (Transact-SQL)
Schreibt alle modifizierten Seiten der aktuellen Datenbank auf den Datenträger. Modifizierte Seiten sind Datenseiten, die in den Puffercache eingegeben und geändert, jedoch noch nicht auf den Datenträger geschrieben wurden. Durch Prüfpunkte kann bei einer späteren Wiederherstellung Zeit eingespart werden, da ein Punkt erstellt wird, an dem auf jeden Fall alle modifizierten Seiten auf den Datenträger geschrieben worden sind.
Transact-SQL-Syntaxkonventionen
Syntax
CHECKPOINT [ checkpoint_duration ]
Argumente
checkpoint_duration
Gibt den Zeitraum in Sekunden an, in dem der Prüfpunkt abgeschlossen werden muss. Wenn checkpoint_duration angegeben ist, versucht Microsoft SQL Server 2005, den Prüfpunkt im angeforderten Zeitraum auszuführen. checkpoint_duration muss ein Ausdruck vom Datentyp int sein, der größer ist als Null. Wird dieser Parameter nicht angegeben, wird die Prüfpunktdauer von SQL Server 2005 automatisch angepasst, sodass die Leistung von Datenbankanwendungen nur minimal beeinträchtigt wird.
Hinweis: |
---|
In SQL Server 2000 basierte der Zeitraum für den Prüfpunktprozess auf dem Wert von RECOVERY INTERVAL für sp_configure. |
Hinweise
Aus Gründen der Leistung führt Datenbankmodul Änderungen an Datenbankseiten im Arbeitsspeicher aus und schreibt die Seite nicht nach jeder Änderung auf den Datenträger. Datenbankmodul muss jedoch regelmäßig einen Prüfpunkt ausführen, um diese modifizierten Seiten auf den Datenträger zu schreiben. Beim Schreiben der modifizierten Seiten auf den Datenträger wird ein bekannter Punkt erstellt. Von diesem Punkt aus kann Datenbankmodul mit dem Anwenden von im Protokoll enthaltenen Änderungen beginnen, wenn nach einem unerwarteten Herunterfahren oder Systemabsturz eine Wiederherstellung ausgeführt werden muss. Weitere Informationen finden Sie unter Prüfpunkte und der aktive Teil des Protokolls.
Prüfpunkte können gleichzeitig in einer beliebigen Anzahl von Datenbanken auftreten.
Eine Wiederherstellung von Datenbankmodul von einem unterbrochenen Prüfpunkt ist nicht möglich. Falls ein Prüfpunkt unterbrochen wird und eine Wiederherstellung erforderlich ist, muss Datenbankmodul die Wiederherstellung von einem vorherigen erfolgreichen Prüfpunkt beginnen.
Ereignisse, die Prüfpunkte auslösen
Vor einer Datenbanksicherung führt Datenbankmodul automatisch einen Prüfpunkt aus, sodass alle Änderungen an den Datenbankseiten in der Sicherung enthalten sind. Automatische Prüfpunkte treten auch auf, wenn eine der folgenden Bedingungen zutrifft:
- Der aktive Abschnitt des Protokolls überschreitet die Größe, die der Server in der über die Serverkonfigurationsoption recoveryinterval angegebenen Zeit wiederherstellen kann.
- Das Protokoll ist zu 70 % voll, und die Datenbank befindet sich im Protokollabschneidemodus.
Eine Datenbank befindet sich im Protokollabschneidemodus, wenn die beiden folgenden Bedingungen zutreffen: Die Datenbank verwendet das einfache Wiederherstellungsmodell, und eines der folgenden Ereignisse tritt auf, nachdem die letzte BACKUP DATABASE-Anweisung, die auf die Datenbank verweist, ausgeführt wurde:- Ein minimal protokollierter Vorgang wird in der Datenbank ausgeführt, z. B. ein minimal protokollierter Massenkopiervorgang, oder eine minimal protokollierte WRITETEXT-Anweisung wird ausgeführt.
- Eine ALTER DATABASE-Anweisung, die der Datenbank eine Datei hinzufügt oder eine Datei daraus löscht, wird ausgeführt.
- Eine BACKUP LOG-Anweisung, die auf die Datenbank verweist, wird mit der NO_LOG- oder der TRUNCATE_ONLY-Klausel ausgeführt.
Darüber hinaus wird beim Anhalten eines Servers ein Prüfpunkt in jeder Datenbank auf dem Server ausgeführt. Bei den folgenden Methoden zum Anhalten von SQL Server werden Prüfpunkte für jede Datenbank ausgeführt:
- Verwenden des SQL Server-Konfigurations-Managers.
- Verwenden von SQL Server Management Studio.
- Verwenden der SHUTDOWN-Anweisung.
Hinweis: |
---|
Mit der SHUTDOWN WITH NOWAIT-Anweisung kann SQL Server heruntergefahren werden, ohne dass Prüfpunkte in jeder Datenbank ausgeführt werden. Der folgende Neustart nimmt dann möglicherweise mehr Zeit als gewöhnlich zum Wiederherstellen der Datenbanken auf dem Server in Anspruch. |
- Verwenden des Befehls net stop mssqlserver in einer Eingabeaufforderung.
- Verwenden von Dienste in der Systemsteuerung, wenn mssqlserver ausgewählt und auf Anhalten geklickt wird.
Faktoren, die sich auf die Dauer von Prüfpunktvorgängen auswirken
Im Allgemeinen erhöht sich die für einen Prüfpunktvorgang benötigte Zeit mit der Anzahl der modifizierten Seiten, die geschrieben werden müssen. Die Auswirkungen auf die Leistung anderer Anwendungen werden minimiert, da SQL Server 2005 standardmäßig die Häufigkeit der vom Prüfpunktvorgang ausgeführten Schreibvorgänge anpasst. SQL Server verwendet diese Strategie für automatische Prüfpunkte und für alle CHECKPOINT-Anweisungen, die keinen checkpoint_duration-Wert angeben. Durch das Verringern der Schreibhäufigkeit wird die Zeit erhöht, die zum Abschließen des Prüfpunktvorgangs erforderlich ist.
Mithilfe von checkpoint_duration können Sie anfordern, dass der Prüfpunktvorgang in einem bestimmten Zeitraum abgeschlossen wird. Die Auswirkungen auf die Leistung durch das Verwenden von checkpoint_duration sind von der Anzahl der modifizierten Seiten, der Aktivität im System und der angegebenen Dauer abhängig. Wenn der Prüfpunkt z. B. normalerweise innerhalb von 120 Sekunden abgeschlossen wird, wird SQL Server durch Angabe eines checkpoint_duration-Wertes von 45 Sekunden dazu veranlasst, mehr Ressourcen für den Prüfpunkt zur Verfügung zu stellen, als gemäß der Standardeinstellung zugewiesen sind. Durch Angabe eines checkpoint_duration-Wertes von 180 Sekunden hingegen wird SQL Server dazu veranlasst, weniger Ressourcen zuzuweisen als in der Standardeinstellung vorgesehen. Im Allgemeinen gilt, dass bei einem kleinen checkpoint_duration-Wert die Ressourcenverwendung für den Prüfpunkt erhöht wird, während bei einem hohen checkpoint_duration-Wert weniger Ressourcen für den Prüfpunkt benötigt werden. Ein Prüfpunkt wird von SQL Server wenn möglich immer abgeschlossen, und die CHECKPOINT-Anweisung gibt sofort nach Abschluss des Prüfpunktes einen entsprechenden Wert zurück. Aus diesem Grund kann ein Prüfpunkt sowohl vor Ablauf des angegebenen Zeitraumes abgeschlossen werden als auch länger als angegeben benötigen.
Berechtigungen
Die CHECKPOINT-Berechtigungen sind standardmäßig Mitgliedern der festen Serverrolle sysadmin und der festen Datenbankrolle db_owner und db_backupoperator zugewiesen und nicht übertragbar.
Siehe auch
Verweis
ALTER DATABASE (Transact-SQL)
SHUTDOWN (Transact-SQL)
Andere Ressourcen
Prüfpunkte und der aktive Teil des Protokolls
recovery interval (Option)
Festlegen von Datenbankoptionen