Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
SQL Server frisst extrem viel Arbeitsspeicher
- Ersteller aggroman
- Erstellt am
A
Adam Gontier
Gast
Ein paar Informationen mehr wären da schon hilfreich. 

- Registriert
- Mai 2010
- Beiträge
- 5.211
So viele Angaben. Da kann man ja sofort ohne Nachfragen helfen.
Betriebssystem?
Was läuft auf dem SQL Server?
Wir groß sind die Datenbanken?
Ist der Verbrauch von 5.5GB ein Problem für diesen Server? Hilft eine Ram Aufrüstung?
Betriebssystem?
Was läuft auf dem SQL Server?
Wir groß sind die Datenbanken?
Ist der Verbrauch von 5.5GB ein Problem für diesen Server? Hilft eine Ram Aufrüstung?
Pupp3tm4st3r
Lt. Commander
- Registriert
- Mai 2007
- Beiträge
- 1.991
Öhm, würde vermuten der SQL lagert aufgrund eines schnelleren Zugriffs in den Ram aus?
Frightener
Rear Admiral
- Registriert
- Nov. 2001
- Beiträge
- 5.269
Der SQL Server nimmt sich alles, was er vom OS zugewiesen bekommen kann. Du kannst aber im SQL Management Studio eine Obergrenze einstellen. Wo man das genau macht kann ich Dir allerdings nicht sagen.
Das ist somit normal
Das ist somit normal

Auf dem Server befindet sich eine Datenbank ca. 5 GB gross von der ständig gelesen wird.
System WIN Server 2008 R2. Ausgestattet ist der Server mit 8 GB Arbeitsspeicher. Ich kann jedoch nicht verstehen wieso der voll ist, es wird zwar von der Datenbank gelesen jedoch immer in kleinen Happen also max paar MB pro Min
System WIN Server 2008 R2. Ausgestattet ist der Server mit 8 GB Arbeitsspeicher. Ich kann jedoch nicht verstehen wieso der voll ist, es wird zwar von der Datenbank gelesen jedoch immer in kleinen Happen also max paar MB pro Min
MichiSauer
Commander
- Registriert
- Feb. 2008
- Beiträge
- 2.889
Da dein SQL-Server quasi alles für schnellen Zugriff in den RAM schiebt...absolut normal.
Der SQL Server speichert die Abfragen und Indizies zwischen um so schnell wie möglich auf Abfragen reagieren zu können. Wenn du keine Obergrenze setzt nimmt sich der SQL Server auch gerne den gesamten freien Speicher. Dafür ist der Speicher allerdings auch da, und er wird freigegeben sobald eine andere Anwendung diesen anfordert.
Die Obergrenze kannst leicht über das Management Studio setzen.
Die Obergrenze kannst leicht über das Management Studio setzen.
OpamitKruecke
Lt. Junior Grade
- Registriert
- Feb. 2010
- Beiträge
- 294
Und für ne Datenbank auch sehr sinnvoll 

Frightener
Rear Admiral
- Registriert
- Nov. 2001
- Beiträge
- 5.269
Der SQL Server nimmt sich nicht den gesamten freien Speicher, sondern das, was er vom OS zugewiesen bekommt. Wenn das OS selbst Speicher braucht oder einem anderen Prozess Speicher zuordnen muß, wird das dem SQL Prozeß schon wieder weggenommen.
ice-breaker
Commodore
- Registriert
- Nov. 2008
- Beiträge
- 4.132
FBrenner schrieb:Wenn das OS selbst Speicher braucht oder einem anderen Prozess Speicher zuordnen muß, wird das dem SQL Prozeß schon wieder weggenommen.
das OS kann meines Wissens dem Prozess den Ram nicht einfach wieder entziehen

Möglicherweise existiert eine Bitte, wieder Memory freizugeben, aber sollte der SQL Server da nicht drauf reagieren, kann das Betriebssystem nachher auch nur den Prozess abschießen.
schlechte Querys können sehr schnell zu Performanceeinbrüchen führen, bzw. sind sie auch meist der Grund dafür.aggroman schrieb:Ich spüre halt extreme Performanceeinbrüche,
ich hab in der letzten Zeit haufenweise Views erstellt (teilweise recht komplex mit JOINs auf mehrere Tabellen). Kanns daran liegen ?
Es gibt beim SQL Server sicher irgendwelche Möglichkeiten das zu Untersuchen.
Frightener
Rear Admiral
- Registriert
- Nov. 2001
- Beiträge
- 5.269
Ich meinte damit den Speicher, den sich der SQL Server ohne ihn zu brauchen nimmt.
FBrenner schrieb:Der SQL Server nimmt sich alles, was er vom OS zugewiesen bekommen kann. Du kannst aber im SQL Management Studio eine Obergrenze einstellen.
Richtige Antwort!
Das kann übrigens soweit führen, dass der ganze Server abschmiert
Die Einstellung findest du im Management Studio unter Eigenschaften der Instanz -> Arbeitsspeicher -> Maximaler Serverarbeitsspeicher in MB
ice-breaker
Commodore
- Registriert
- Nov. 2008
- Beiträge
- 4.132
FBrenner schrieb:Ich meinte damit den Speicher, den sich der SQL Server ohne ihn zu brauchen nimmt.
aus Sicht des Betriebssystems macht das keinen Unterschied, aber wir weichen vom Thema ab

derlolomat
Lieutenant
- Registriert
- Feb. 2011
- Beiträge
- 796
Unnötige Klugscheißerei, aber bitte:
Was ist, wenn der SQL-Server selber überprüft ob ein anderer Prozess bis an die komplette Arbeitsspeicherauslastung welchen belegt und dann "brüderlich teilt"?
EDIT: Sagtest du sogar auch selber.
Was ist, wenn der SQL-Server selber überprüft ob ein anderer Prozess bis an die komplette Arbeitsspeicherauslastung welchen belegt und dann "brüderlich teilt"?
EDIT: Sagtest du sogar auch selber.
ice-breaker
Commodore
- Registriert
- Nov. 2008
- Beiträge
- 4.132
Prozesse laufen isoliert, die können keinen Arbeitsspeicher mit anderen Prozessen teilen, das ist eine Schutzfunktion des Betriebssystems, sonst könnte jeder Prozess in den Speicher eines anderen Programmes schreiben.
@aggroman: Eventuell kennt der sql server ein Slow Query Log oder ähnliches, da können dann langsame oder nicht optimierte Querys geloggt werden. Aber auch deine Anwendung kann das einfach mal untersuchen. Einfach in der Anwendung die Zeit jedes Querys messen und bei z.B. über 100ms eine Warnung herausgeben.
@aggroman: Eventuell kennt der sql server ein Slow Query Log oder ähnliches, da können dann langsame oder nicht optimierte Querys geloggt werden. Aber auch deine Anwendung kann das einfach mal untersuchen. Einfach in der Anwendung die Zeit jedes Querys messen und bei z.B. über 100ms eine Warnung herausgeben.
Frightener
Rear Admiral
- Registriert
- Nov. 2001
- Beiträge
- 5.269
@ice-breaker
Wenn der TO sich nicht so gut auskennt vermeide ich es, den technischen Level in meinen zu hoch anzusetzen ;-) Es ist wichtig zu sagen, daß das Verhalten normal ist.
Wenn der TO sich nicht so gut auskennt vermeide ich es, den technischen Level in meinen zu hoch anzusetzen ;-) Es ist wichtig zu sagen, daß das Verhalten normal ist.
derlolomat
Lieutenant
- Registriert
- Feb. 2011
- Beiträge
- 796
ice-breaker schrieb:Prozesse laufen isoliert, die können keinen Arbeitsspeicher mit anderen Prozessen teilen, das ist eine Schutzfunktion des Betriebssystems, sonst könnte jeder Prozess in den Speicher eines anderen Programmes schreiben.
Die Anführungszeichen hast du aber gesehen, oder? Sollte bedeuten, dass "die unnötigsten" Ressourcen des SQL-Servers von ihm selbstständig freigegeben werden.
Wenn schon klugscheißen, dann bitte richtig.
PS: Auch in diesem Posting sind 2 Anführungszeichen versteckt. Findest du sie und weißt sie auch zu deuten?
Um festzustellen warum ein Query lange dauert, kann man einfach das SQL-Statement als Query im SQL Mangement Studio ausführen und dabei entweder über Query -> Display Extimated Execution Plan erkennen wo es hackt, oder mit Query -> Analyse Query in Database Engine Tuning Advisor ind die Tiefe gehen. Meist reicht aber ein Blick in den Execution Plan um festzustellen wo es hackt.
Ähnliche Themen
- Antworten
- 5
- Aufrufe
- 779
- Antworten
- 6
- Aufrufe
- 624
- Antworten
- 8
- Aufrufe
- 5.417
- Antworten
- 3
- Aufrufe
- 1.138
- Antworten
- 15
- Aufrufe
- 2.477