2009-08-17 29 views
22

Ich debugge eine meiner Apps und bemerkte, dass der RAM in meinem SQL Server 2005 x64-Feld (auf einem Windows 2003 R2 x64 ausgeführt) gebunden ist und sogar in die Auslagerungsdatei geht.Wie viel RAM verwendet SQL Server tatsächlich?

Ich verstehe, dass SQL Server 2005 x64 nur alles packt, was es kann, also könnte dies normal sein (???). Wie kann ich überprüfen, wie viel Speicher tatsächlich verwendet wird?

+1

Ist das nicht eine ServerFault Frage? –

+0

Wählen Sie * aus sys.dm_os_process_memory – user1005462

Antwort

22

Sie müssen Perfmon (Start -> Systemsteuerung -> Verwaltungstools -> Leistung) ausführen. Die Zähler, die Sie möchten, befinden sich in SQL Server: Memory Manager. Zielserverspeicher ist, wie viel es bei Bedarf aufnehmen darf, Total Server Memory ist, wie viel es derzeit verwendet. Wenn Sie auf Erklären klicken, öffnet sich eine Box mit den Details.

Standardmäßig ist es nicht gecapped und sollte alle außer ein paar GB Speicher verwenden (dies bleibt für das Betriebssystem). Es gibt jedoch verschiedene Bugs und Speicherlecks, die dazu führen können, dass Paging ausgelöst wird.

+0

Auf welche Fehler beziehen Sie sich? Es gibt viele legitime Gründe, warum SQL pagen muss, beispielsweise wenn der Server physischen Speicher (RAM) hat. Wenn kein RAM verfügbar ist, hat SQL keine andere Wahl als den Datenträger zu verwenden. –

+0

dbcc memorystatus –

+1

All dies bedeutet für mich eine Grafik, die ständig '100' ist, was unmöglich ist. –

-4
  1. Start -> Ausführen -> perfmon
  2. Blick auf die zig Millionen von Zählern, die SQL Server
+8

downvote, weil es so viele SQL-Leistungsindikatoren gibt, die nichts mit dem Speicher zu tun haben und das Betrachten der "Zillionen" hilft nicht, die Frage zu beantworten. – Brian

+0

Es ist immer noch ein netter Hinweis. – Mariusz

2

Sie installiert sollte SQL Server \ Memory Manager-Leistungsindikatoren erkunden.

9

in Bezug auf Ihre Frage, können Sie die Menge an RAM SQL Server berücksichtigen wollen, die den Zugang hat, wenn man es in einer gemeinsamen Umgebung verwenden, dh auf einem Server, der mehr als nur SQL Server hostet:

  1. Start> Alle Programme> Microsoft SQL Server 2005: SQL Server Management Studio.
  2. Verbinden Sie mit dem Konto, das über Administratorrechte verfügt.
  3. Klicken Sie mit der rechten Maustaste auf die Datenbank> Eigenschaften.
  4. Wählen Sie "Speicher" aus dem linken Bereich und ändern Sie dann die "Server-Speicheroptionen" auf was auch immer Sie zu SQL Server zugewiesen werden sollen.

Dies wird dazu beitragen, SQL Server von der Nutzung des gesamten Arbeitsspeichers des Servers zu entlasten.

0

Gehen Sie zu Management Studio und führen Sie sp_helpdb <db_name> aus, es gibt detaillierte Datenträgerverwendung für die angegebene Datenbank. Wird es ohne Parameterwerte ausgeführt, werden Informationen auf hoher Ebene für alle Datenbanken in der Instanz aufgelistet.

+2

Die Frage war über die Verwendung von Arbeitsspeicher (RAM), anstatt die Verwendung von Festplatten. – Mike

-2

Die einfachste Möglichkeit, RAM-Nutzung zu sehen, wenn Sie RDP-Zugriff/Konsole Zugriff haben, wäre nur Start Task Manager - Prozesse klicken - Prozesse von allen Benutzern anzeigen, nach RAM sortieren - Dies gibt Ihnen die Verwendung von SQL.

Wie oben erwähnt, um die Größe zu verringern (die sofort wirksam wird, kein Neustart erforderlich) starten Sie sql Management Studio, klicken Sie auf den Server, Eigenschaften - Speicher und verringern Sie die max. Es gibt keine genau richtige Nummer, aber stellen Sie sicher, dass der Server für andere Aufgaben frei ist.

Die Antworten zu perfmon sind korrekt und sollten verwendet werden, aber sie sind nicht so offensichtlich eine Methode wie Task-Manager IMHO.

+0

Dies funktioniert nicht .. Es zeigt 300 Mb, aber wenn ich den SQL Server neu starten bekomme ich 8GB mehr freien Speicher – Peter

+0

Haben Sie CLR-Routinen vielleicht? Diese können ram verwenden und freigegeben werden, wenn sql stoppt. –

+0

Nein, wir verwenden keine Clr-Routinen .. – Peter

Verwandte Themen