SQL Server 2008 R2 SP1 - Tempdb "Verfügbarer freier Speicherplatz" mit negativem Wert

7

Bitte helfen Sie, da dieses Problem mich verrückt macht ...

Tempdbhat vier Datendateien und eine Protokolldatei. Sie befinden sich alle auf demselben dedizierten Laufwerk.

Wenn ich tempdbin SQL Server Management Studio (SSMS) mit der rechten Maustaste auf klicke, um Eigenschaften -> Allgemein anzuzeigen, wird "Größe" als ~ 65000 MB und "Speicherplatz verfügbar" als ~ 64000 MB angezeigt. Wenn ich jedoch versuche, die Dateien über die GUI zu verkleinern, sehe ich, dass sich der "aktuell zugewiesene Speicherplatz" nicht geändert hat und immer noch die ursprüngliche Größe anzeigt.

Hier wird auch der "Verfügbare freie Speicherplatz" als negative Zahl angezeigt. Die einzige Problemumgehung, die ich bisher gefunden habe, besteht darin, SQL Server neu zu starten, um das System zu leeren tempdb, aber ich kann dies nicht weiter tun.

Hat jemand jemals darauf gestoßen und kennt die Grundursache / dauerhafte Lösung dafür bitte?

Chinesinho
quelle
2
1 - Tempdb nicht verkleinern. 2 - Erhalten Sie Fehler, die Sie dazu auffordern würden?
JNK
TempDB befindet sich bei "~ 65000 MB", da es seit dem letzten Neustart so groß sein musste. Wenn es so groß sein musste, dann stelle ich mir vor, dass es dafür einen Grund gibt. Das Verkleinern führt nur zu unnötigen E / A während des Verkleinerns und in Zukunft, wenn es wieder wächst.
Max Vernon
2
Sie sollten Tempdb also wirklich als Teil der SQL-Basisinstallation betrachten und diesen Laufwerksspeicher dauerhaft Tempdb zuweisen.
JNK

Antworten:

2

Open Query Analyzer Run DBCC UPDATEUSAGE('tempdb') Nachdem dies erledigt ist, überprüfen Sie den Temdb-Wert und es sollten die wahren Werte angezeigt werden.

Auch dies könnte Ihnen helfen.

Überprüfen Sie auch, ob offene Transaktionen mit dbcc opentran oder sp_whoisactive (SP von Adam Mechanic) offen sind.

Das war ein Fehler in SQL Server 2008 SP1 beschrieben hier .

Verursacht es aus Neugier Leistungsprobleme?

Kin Shah
quelle
Ich bin mir ziemlich sicher, dass dies ein fehlerhaftes Verhalten ist. Ich habe dasselbe in einer unserer Instanzen (2008 R2 ... ich glaube damals RTM) gesehen, als ich tempdbDateien verkleinert habe . Der Versuch, in diesem Zustand zu schrumpfen, hat die Instanz tatsächlich eingefroren. Ich denke, das Sicherste ist, die Instanz zu einem geeigneten Zeitpunkt neu zu starten. Das Problem ist seitdem nicht mehr aufgetreten, und ich werde nicht anfangen, an Produkten herumzuspielen, die versuchen, es zu reproduzieren.
Jon Seigel
Wenn dies ein in SP1 gemeldeter Fehler ist, scheint er nicht behoben zu sein, da unser Kunde installiert hat Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64) Sep 21 2011 22:45:45 Copyright (c) 1988-2008 Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)und für tempdb weiterhin negativer freier Speicherplatz angezeigt wird.
Junior Mayhé
0

Nun, Sie müssen Ihre Tempdb-Einstellungen überprüfen und die Verwendung durch Ihren Server überprüfen. Microsoft gibt die wichtigsten Hinweise zum Verwalten der Tempdb und zum Optimieren ihrer Leistung (siehe http://msdn.microsoft.com/en-us/library/ms175527(v=sql.105).aspx ). Versuchen Sie, sie anzuwenden und sehen Sie das Ergebnis (in meinem Fall hat es geholfen, meine 17-GB-Datenbank auf 4 GB zu optimieren).

Sie können auch die temporäre Datenbank sp_spaceused proc it verwenden. Hier erfahren Sie, welche Tabelle den größten Teil des Speicherplatzes in der Datendatei belegt. Sie können Profiler auch verwenden, um das automatische Wachstum der Datei und das automatische Wachstum der Protokolldatei zu erkennen. Wenn es sich häufig ändert, nimmt tempDb automatisch zusätzlichen Speicherplatz in Anspruch, und Sie müssten wahrscheinlich die Logik für die Verwendung Ihrer # tmp-Tabellen ändern.

Wenn Sie die Tempdb auf einem funktionierenden Server verkleinern, kann dies zu Problemen mit den Abfragen in den anderen Datenbanken führen (nur im Einzelmodus).

Alex
quelle
-1

Sie können einfach die Anfangsgröße der Dateien ändern und die Datei danach entsprechend verkleinern. Das Problem ist, dass die aktualisierte Größe sich nicht in der Dateigröße widerspiegelt und daher der verfügbare Speicherplatz negativ ist. Hoffe das hilft.

ankur
quelle