Laden...

MSSQL Server 2005 - Wann wird der Cache geleert?

Erstellt von Powerslave vor 13 Jahren Letzter Beitrag vor 13 Jahren 900 Views
P
Powerslave Themenstarter:in
554 Beiträge seit 2005
vor 13 Jahren
MSSQL Server 2005 - Wann wird der Cache geleert?

verwendetes Datenbanksystem: MSSQL Server 2005 Enterprise Edition

Hallo,

kann mir jemand erklären, wann der Cache des SQL Servers 2005 geleert wird?

Also zum Beispiel, wenn seit einem gewissen Zeitraum keine Transaktion stattgefunden hat oder wenn der Cache überläufen würde.

Gibts da Grenzen oder ist das willkürlich?

Achtung! - Hinter dir ist ein dreiköpfiger Affe!

1.820 Beiträge seit 2005
vor 13 Jahren

Hallo!

Hab' zwar keine Antwort auf deine Frage, aber eine Gegenfrage: Aus welchem Grund interessiert dich dass (hilft vielleicht anderen noch bei der Beantwortung)?

Wenn du den Cache manuell löschen willst, geht das mit


dbcc freeproccache
go
dbcc dropcleanbuffers
go

dann noch die tempdb löschen mit

dbcc shrinkdatabase (tempdb, 10)

und die nächste Abfrage wird "cachefrei" ausgeführt.

Die Größe des Cache (bzw. des max. zu benutzenden Speichern) kann man ja einstellen. Und ich denke mal, wenn der voll ist, wird entweder in die tempdb ausgelagert oder alte Bereiche werden frei gegeben.
Wenn die DB stark frequentiert ist, wird sowieso immer das Maximum in Benutzung sein.

Nobody is perfect. I'm sad, i'm not nobody 🙁

P
Powerslave Themenstarter:in
554 Beiträge seit 2005
vor 13 Jahren

Hallo Tom,

ich habe ein SQL-Statement, dass nach dem manuellem Leeren des Caches (DBCC DROPCLEANBUFFERS) ca. 10 Sekunden dauert und bis zum nächsten Leeren natürlich gecacht wird. (< 0 Sek)

Beim Kunden treten ab und an SQL-Timeouts zu ganz willkürlichen Zeiten auf, auch teilweise nachts um 4 Uhr, wenn fast niemand mehr arbeitet.

Daher die Vermutung, dass der Cache auch geleert wird, wenn nichts getan wird.

Im Netz finde ich leider keine gute Erklärung.

Achtung! - Hinter dir ist ein dreiköpfiger Affe!