Als Datenbankadministrator wurden Sie vielleicht schon einmal zum Opfer eines Anrufs mitten in der Nacht, mit der Benachrichtigung des Kunden, dass jegliche Operationen im SQL Server mit der Error Meldung „tempdb primary filegroup full“, enden.

Es ist ein leidiges Thema, doch sind die Ursachen oft schneller geklärt als man denkt!

Naheliegend zu überprüfen wäre, welche Prozesse die meisten Seitenzuweisungen in Anspruch nehmen. Aber was, wenn man damit nicht die tatsächliche Ursache feststellen kann? Es gibt noch eine andere Funktion, die die Eigenschaft besitzt, die Tempdb Datenbank aufzufüllen. Wenn Read Committed Snapshot (RCSI) aktiv ist, dann hat man auch einen „Version Store“ in der Datenbank. Ohne nun zu tief in die technischen Feinheiten einzugehen, kann man sagen, dass durch RCSI verschiedene Versionen der Daten im „Version Store“ aufbewahrt werden. SQL Server wird die meiste Zeit versuchen, diesen zu leeren und nicht mehr notwendige Reihen zu löschen, aber gelöscht werden, können nur Reihen, die älter sind als die älteste laufende Transaktion.

Vielleicht erkennt man jetzt die potenzielle Problematik. Was wird passieren, wenn jemand eine Transaktion offenhält und diese nicht geschlossen wird? Richtig! Der Version Store wird sich füllen und somit auch entsprechend viel Speicherplatz in der Tempdb in Anspruch nehmen.

Mit den richtigen DMVs (Dynamic Managment Views) können Sie ausfindig machen, welche Transaktion für dieses Debakel verantwortlich ist und entsprechend handeln. Bis dann die nächste Transaktion kommt und wieder anfängt das Gleiche zu machen …

Um dagegen gewappnet zu sein, schlaflose Nächte zu vermeiden und prophylaktisch gegen eine volle Tempdb vorzusorgen, kann Ihnen mit dem Monitoring durch Lucient Guardian geholfen werden! Wir sorgen dafür, dass Fehler behoben werden, bevor sie zu einem Problem werden.