2010-12-15 9 views
0

Ich benutze SQL Server 2008 Enterprise auf meinem Online-Server, hat die Hauptdatenbank Tabellen, die mehr als 2 Millionen Datensätze pro Monat erwarten, wie diese Tabellen wachsen SQL Server nimmt viel von den 4 GB Speicher installiert und Schließen Sie dann den Server-RAM.SQL Server und RAM

Ich habe den SQL Server-RAM auf 2 GB beschränkt, aber wenn es diese RAM verwendet, hört es auf zu funktionieren, zerstört Verbindungen und führt zu langsam aus.

Ist das normal? Und was kann ich tun, um nach der Abfrage dieser großen Tabellen den RAM von SQL Server zurück zu bekommen?

Antwort

5

Auf einem dedizierten Windows-Server, auf dem SQL Server ausgeführt wird, gehen bei einigen Zählern 5-15 MB freier RAM-Speicher verloren. Es ist normal. Es gibt kein Speicherleck.

Wenn Sie 4 GB RAM ausgestattet haben, würde ich in Betracht ziehen, mit/3GB 32 Bit zu aktivieren und SQL Server RAM für sich selbst erarbeiten. Fügen Sie für 64 Bit mehr RAM hinzu, und lassen Sie SQL Server erneut für sich selbst RAM ausarbeiten.

Verhungerndes SQL Server von RAM resultiert in Festplatten-Thrashing, während Daten durch den Speicher aufgewühlt werden.

Wenn sich Ihr SQL Server nicht in einer dedizierten Box befindet, verschieben Sie ihn auf einen.

Verschiedene Links zu anderen SO Fragen: One, Two, Three

+0

Danke, ich benutze einen 64-Bit-Windows-Server 2008, wenn ich SQL-Server verlassen, um den RAM zu verwalten, nachdem die gehosteten Websites auf dem gleichen Server langsam ausgeführt werden, wird der SQL-Server zu langsam und einige Abfragen können nicht ausgeführt werden Ich weiß nicht warum? wenn ich den Widder sehe, wird es niedrig! ist es normal – Hadad

+1

@Hadad, sollten Sie nicht Web-Anwendungen auf dem gleichen Server wie die Datenbank hosten. – HLGEM

+0

Vielen Dank Ich werde den SQL Server auf eine andere Maschine trennen – Hadad

1

Sie müssen Sql Server den Speicher behandeln lassen. Es wird alles versuchen und verwenden, was Sie ihm geben, denn was es in den Speicher lädt, hängt direkt davon ab, wie schnell es funktioniert. Mach dir keine Sorgen, es zu beschränken. Es wird anderen Prozessen im System Speicher zurückgeben, wenn sie es benötigen, und es zurückfordern, wenn diese Prozesse abgeschlossen sind.

3

Siehe hier: The SQL Server Memory Leak Confusion

Grundsätzlich SQL Server so viel Speicher verwenden, wie es möglich greifen kann, ist es viel teurer ist von der Festplatte zu lesen, als aus dem RAM. Um den RAM freizugeben können Sie neu starten, aber dann werden alle Ihre Abfragen langsam sein, weil es die Festplatte

+0

+1 für den Link - danke! –

1

Sie wahrscheinlich wollen SQL-Server, eine Menge RAM zu verwenden. Es ist so konzipiert, dass es so viel Speicher wie möglich verwendet, um Ergebnisse und Tabellen im Speicher zwischenzuspeichern, so dass der Zugriff in Zukunft viel schneller ist (wie Sie erwähnen).

Wenn Ihr Speicher für SQL-Server niedrig ist, "altern" automatisch Abfragen und Caches, so dass die ältesten entfernt werden.

Read here für weitere Informationen.