2009-05-24 10 views
4

Ich habe eine Anwendung, die verschiedene Abfragen mit unterschiedlichen Ergebnissen macht, so dass das Caching in meinem Fall schädlich ist.Sql 2008 Caching deaktivieren?

Dies bedeutet, dass es keine allgemeinen Daten gibt, die sql davon abziehen können, das Ergebnis direkt aus dem Speicher zu holen, anstatt Festplattenzugriff zu machen.

Antwort

2

Aus Ihren Kommentaren klingt es so, als ob Sie nicht möchten, dass SQL viel Speicher verwendet, da Sie das Gefühl haben, dass es sinnlos ist, da alle ausgeführten Abfragen effektiv zufällig sind.

Erstens wird dieser Speicher wahrscheinlich verwendet, um Indizes und Abfragepläne zu speichern, anstatt die tatsächlichen Daten, die Sie zurückgeben möchten, daher werden Sie wahrscheinlich feststellen, dass dieser Cache viel nützlicher ist als Sie denken.

Zweitens ist es höchst unwahrscheinlich, dass SQL, das diese Menge an Speicher verwendet, eine reduzierte Leistung bei einer wirklich zufälligen ungesehenen Abfrage verursacht. Wenn SQL Server auf die Festplatte gehen muss, um Informationen zu erhalten, ist die verwendete Speichermenge kaum relevant.

Es ist jedoch möglich, die von SQL Server verwendete Speichermenge zu reduzieren. (Ich weiß nicht, wo die Option in SQL 2008 ist, aber ich gehe davon aus, dass sie ziemlich ähnlich ist.) Klicken Sie in Management Studio mit der rechten Maustaste auf den Server, und führen Sie Eigenschaften aus. Unter dort haben Sie eine Seite für Erinnerung. Hier können Sie die minimalen und maximalen Werte auswählen, die SQL verwenden wird. Dadurch wird effektiv verhindert, dass Caching sql auf Basis Ihrer Werte erfolgt, und nicht aufgrund der physischen Serverbeschränkungen.

Ich glaube wirklich nicht, dass Sie irgendwelche Leistungssteigerungen sehen werden, obwohl. Nach meiner Erfahrung ist SQL immer am besten, wenn es seine eigene Sache tut.

+0

Okay, wenn ich den maximalen Speicher für SQL-Server begrenzen, was passiert, wenn es mehr als das angegebene Maximum braucht? es wird zusammenbrechen? –

+0

nein es wird nicht abstürzen es wird am Limit laufen – u07ch

1

Ihre Frage ist falsch: Caching bedeutet, dass Daten im Speicher sind und der Festplattenzugriff vermieden wird.

In jedem Fall ist das SQL Server-Caching nicht schädlich. Für die Pedanten gibt es immer Ausnahmen, aber Sie müssten den Code und die Konfiguration vorher gründlich vermasselt haben.

+0

Die sql dauert viel Speicher im Laufe der Zeit und Ich bekomme nicht profitieren von diesem riesigen Speicherverbrauch, ist die Logik der Anwendung, zufällige Daten aus der Datenbank zu bekommen, so dass ich nicht wollen, dass überhaupt –

+0

Sie können Beschränken Speicherverbrauch in SQL mit Management Studio, aber ich bin mir immer noch nicht sicher, warum Sie würden - wie viele zufällige Daten gibt es? Sie können dies in Servereigenschaften in Management Studio tun; Reduziere den maximalen Speicher auf das Minimum und starte den sql Server neu. Je weniger Speicher du ihm gibst, desto mehr wird es deine Festplatten durchkreuzen. – u07ch

+0

@ahmed: SQL Server verwendet Speicher aus einem bestimmten Grund. Es wird normalerweise Speicher nicht verwenden, wenn es es benötigt. – gbn

0

Ausschalten (oder zu versuchen, zu deaktivieren) SQL Server-Caching denkt über das Problem völlig in die falsche Richtung. Wenn die Daten in Ihrer Datenschicht gespeichert sind, sollten Sie sie dort aktualisieren. SQL Server wird niemals veraltete Daten bereitstellen.