Benutzer mit den meisten Antworten
Time-out occurred while waiting for buffer latch type 3 for page

Frage
-
Hallo zusammen,
DBCC CHECKDB
liefert mir den Fehler:
Msg 845, Level 17, State 1, Line 1 Time-out occurred while waiting for buffer latch type 3 for page (1:339380), database ID 5.
SELECT @@VERSION Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (X64) Mar 29 2009 10:11:52 Copyright (c) 1988-2008 Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.0 <X64> (Build 6002: Service Pack 2) (VM)
Was kann die Fehlerursache sein und wie würdet ihr den Fehler beheben?
Gruß Yury
Antworten
-
Hallo Yury,
so ein Problem lässt sich meist nur schwer eingrenzen.
Latches werden dort eingesetzt, wo nur kurzzeitige Blockierungen erwartet werden,
und sind konzeptionell leichtgewichtiger als Sperren, einiges dazu findest Du unter:
Description of the waittype and lastwaittype columns in the master.dbo.sysprocesses table in SQL Server 2000 and SQL Server 2005
und Diagnostics in SQL Server 2000 SP4 and in later versions help detect stalled and stuck I/O operationsWas die Tabelle angeht, wäre solltest Du über sys.dm_db_index_physical_stats (oder DBCC SHOWCONTIG )
in wieweit sie fragmentiert ist und erforderlich einen Rebuild (in ruhigeren Zeiten) einplanen.Wenn DBCC CHECKDB (bei erfolgreichem Lauf) Fehler bei der Tabelle oder einzelnen Indizes zeigt,
wäre anstatt eines Index Rebuilds ein Entladen und Neuladen (Bulk Copy) u. U. besser.Was AWE angeht, ist das für x64 nicht mehr von Bedeutung.
Helfen kann aber ein Sperren von Speicherseiten , was ein Betriebssystem Recht ist.
Auch wenn sich die Dokumentation da widerspricht - der obige sagt nein für X64,
der am Donnerstag gepostete wiederum empfiehlt es - so können dadurch Wartezeiten
vermieden werden, die durch Auslagerung von Speicherseiten passieren:
How to reduce paging of buffer pool memory in the 64-bit version of SQL Servermit Service Pack + CU 2 und später auch für die Standard Editionen:
Support for Locked Pages on SQL Server 2005 Standard Edition 64-bit systems and on SQL Server 2008 Standard Edition 64-bit systemsGruß Elmar
- Als Antwort markiert Yury Iwtschenko Samstag, 18. September 2010 17:09
Alle Antworten
-
Hallo Yury,
tritt es bei Dir regelmäßig beim DBCC CHECKDB auf oder nur vereinzelt?
Das Problem taucht im Web immer mal wieder auf, wie z. B.:
Unable to Drop Data-File – Error: Time-out occurred while waiting for buffer latch type 3Bei DBCC CHECKDB könnte die Ursache sein, dass dort ein Snapshot erzeugt wird,
und der Serverspeicher zu stark ausgelastet ist, siehe z. B. Paul Randalls Erläuterungen dazu:
http://www.sqlskills.com/BLOGS/PAUL/post/Issues-around-DBCC-CHECKDB-and-the-use-of-hidden-database-snapshots.aspx
(und ff.)Ob es hier hilft, weiss ich nicht, aber hast Du die Option Lock pages in memory aktiviert,
wie es auch für X64 empfohlen wird?Gruß Elmar
-
Hallo Elmar,
danke für die Antwort.
Das Problem hat bei der Datenbank schon ein paarmal aufgetreten. AWE ist deaktiviert.
Die Tabelle, deren Datenseiten beschädigt und geblockt werden, enthielt über 100 Mio. Datensätze und ist ca. 8 Gb. groß.
Ich vermute, dass das Problem durch Folgendes verursacht wird:
- intensive Aufteilung der Datenseiten
- fehlerhafte Hauptspeicher
- fehlerhafte Speicher
- SQL Server FehlerIch freue mich über jegliche Tipps!
Gruß Yury -
Hallo Yury,
so ein Problem lässt sich meist nur schwer eingrenzen.
Latches werden dort eingesetzt, wo nur kurzzeitige Blockierungen erwartet werden,
und sind konzeptionell leichtgewichtiger als Sperren, einiges dazu findest Du unter:
Description of the waittype and lastwaittype columns in the master.dbo.sysprocesses table in SQL Server 2000 and SQL Server 2005
und Diagnostics in SQL Server 2000 SP4 and in later versions help detect stalled and stuck I/O operationsWas die Tabelle angeht, wäre solltest Du über sys.dm_db_index_physical_stats (oder DBCC SHOWCONTIG )
in wieweit sie fragmentiert ist und erforderlich einen Rebuild (in ruhigeren Zeiten) einplanen.Wenn DBCC CHECKDB (bei erfolgreichem Lauf) Fehler bei der Tabelle oder einzelnen Indizes zeigt,
wäre anstatt eines Index Rebuilds ein Entladen und Neuladen (Bulk Copy) u. U. besser.Was AWE angeht, ist das für x64 nicht mehr von Bedeutung.
Helfen kann aber ein Sperren von Speicherseiten , was ein Betriebssystem Recht ist.
Auch wenn sich die Dokumentation da widerspricht - der obige sagt nein für X64,
der am Donnerstag gepostete wiederum empfiehlt es - so können dadurch Wartezeiten
vermieden werden, die durch Auslagerung von Speicherseiten passieren:
How to reduce paging of buffer pool memory in the 64-bit version of SQL Servermit Service Pack + CU 2 und später auch für die Standard Editionen:
Support for Locked Pages on SQL Server 2005 Standard Edition 64-bit systems and on SQL Server 2008 Standard Edition 64-bit systemsGruß Elmar
- Als Antwort markiert Yury Iwtschenko Samstag, 18. September 2010 17:09