Discussion:
2GB Grenze und DB-Groesse
(zu alt für eine Antwort)
Jürgen Föhr
2005-10-17 11:29:05 UTC
Permalink
Hallo zusammen.

Wir haben einen SQL 2000-Server auf W2K-Server mit Dual Xeon 3 GHz und 4 GB
RAM. Dazu einen ICP-SCSI-Controller mit einem RAID 5 (3 Platten) für die DB.
Das Transaktionsprotokoll liegt auf einer separaten SCSI-Platte. Der
Arbeitsspeicher wird dynamisch konfiguriert, das Maximum steht auf 3200 MB
(macht bei der SQL Std.-Version vermutlich keinen Sinn, lt. Taskmanager
werden eh nur 1,7 GB von sqlserver.exe beansprucht). Der Server hat außer
dem SQL-Server-Dienst keine weiteren Aufgaben.

Der Server hostet die ca. 7 GB große DB für unser ERP-System. An
verschiedenen Stellen gibt es nun immer wieder einmal Performanceprobleme.
Die Frage ist jetzt, ob und was an der Konfiguration optimiert werden kann.
Ist eine 7 GB große DB bei 2 GB nutzbarem RAM noch OK, bzw. bis zu welcher
DB-Größe kann man bei den 2 GB gehen? Gibt es außer der Neuinstallation der
(nicht vorhandenen und teuren) Enterprise-Version noch andere Möglichkeiten,
den brach liegenden RAM zu nutzen.

Für alle Tips, auch in Richtung Tuning oder Optimierung schon mal danke.

Jürgen
stefan hoffmann
2005-10-17 12:59:11 UTC
Permalink
tach Jürgen,
Post by Jürgen Föhr
Wir haben einen SQL 2000-Server auf W2K-Server mit Dual Xeon 3 GHz und 4 GB
RAM. Dazu einen ICP-SCSI-Controller mit einem RAID 5 (3 Platten) für die DB.
Das Transaktionsprotokoll liegt auf einer separaten SCSI-Platte.
Das Transaktionslog wird permanent geschrieben, ein Platte ist
sicherlicht die schnellste Lösung, wenn es ein 15k (Umdrehungen) Platte ist.
Post by Jürgen Föhr
Der Server hostet die ca. 7 GB große DB für unser ERP-System. An
verschiedenen Stellen gibt es nun immer wieder einmal Performanceprobleme.
Was heißt an "verschieden Stellen"?
Post by Jürgen Föhr
Für alle Tips, auch in Richtung Tuning oder Optimierung schon mal danke.
Laufen entsprechende Wartungspläne? Indexoptimierung?


mfG
--> stefan <--

m
Jürgen Föhr
2005-10-17 14:48:55 UTC
Permalink
Hallo Stefan,

das mit den "verschiedenen Stellen" war natürlich etwas unpräzise.
Wesentlich genauer kann ich es aber nicht beschreiben. Beispielsweise kommt
es häufiger zu Sperren, weil lokale Datenpakete ab und zu sehr schnell
ausgeführt werden, ca. 1 - 2 Sek, eine Stunde später brauchen sie dann 1 - 2
Min. Berücksichtigt ist natürlich, daß keine "Sonderaktionen" zu diesem
Zeitpunkt laufen. Wartungspläne mit Indexoptimierung laufen, die Platte ist
eine 15k.

Werde mal den bisher erhaltenen Hinweisen nachgehen und sehen, ob es
Optimierungsbedarf gibt.

Danke Dir.

Jürgen
Post by stefan hoffmann
tach Jürgen,
Post by Jürgen Föhr
Wir haben einen SQL 2000-Server auf W2K-Server mit Dual Xeon 3 GHz und 4 GB
RAM. Dazu einen ICP-SCSI-Controller mit einem RAID 5 (3 Platten) für die DB.
Das Transaktionsprotokoll liegt auf einer separaten SCSI-Platte.
Das Transaktionslog wird permanent geschrieben, ein Platte ist
sicherlicht die schnellste Lösung, wenn es ein 15k (Umdrehungen) Platte ist.
Post by Jürgen Föhr
Der Server hostet die ca. 7 GB große DB für unser ERP-System. An
verschiedenen Stellen gibt es nun immer wieder einmal
Performanceprobleme.
Post by stefan hoffmann
Was heißt an "verschieden Stellen"?
Post by Jürgen Föhr
Für alle Tips, auch in Richtung Tuning oder Optimierung schon mal danke.
Laufen entsprechende Wartungspläne? Indexoptimierung?
mfG
--> stefan <--
m
Christoph Muthmann
2005-10-17 13:46:58 UTC
Permalink
Post by Jürgen Föhr
Hallo zusammen.
Wir haben einen SQL 2000-Server auf W2K-Server mit Dual Xeon 3 GHz
und 4 GB RAM. Dazu einen ICP-SCSI-Controller mit einem RAID 5 (3
Platten) für die DB. Das Transaktionsprotokoll liegt auf einer
separaten SCSI-Platte. Der Arbeitsspeicher wird dynamisch
konfiguriert, das Maximum steht auf 3200 MB (macht bei der SQL
Std.-Version vermutlich keinen Sinn, lt. Taskmanager werden eh nur
1,7 GB von sqlserver.exe beansprucht). Der Server hat außer dem
SQL-Server-Dienst keine weiteren Aufgaben.
Der Server hostet die ca. 7 GB große DB für unser ERP-System. An
verschiedenen Stellen gibt es nun immer wieder einmal
Performanceprobleme. Die Frage ist jetzt, ob und was an der
Konfiguration optimiert werden kann. Ist eine 7 GB große DB bei 2 GB
nutzbarem RAM noch OK, bzw. bis zu welcher DB-Größe kann man bei den
2 GB gehen? Gibt es außer der Neuinstallation der (nicht vorhandenen
und teuren) Enterprise-Version noch andere Möglichkeiten, den brach
liegenden RAM zu nutzen.
Für alle Tips, auch in Richtung Tuning oder Optimierung schon mal danke.
Hallo Jürgen,
ergänzend zu Stefan würde ich sagen: Kommt drauf an!
Welche SQLServer-Version hast Du im Einsatz?

Bei mir laufen ca. 80 GB auf ähnlicher Konstellation problemlos.

Was macht die Anwendung?
Wieviele User sind gleichzeitig aktiv?
Wird viel in der tempdb gemacht? Dann separiere diese ebenfalls auf
eigene Platten.
Hast Du evtl. Locking-Probleme?
(http://support.microsoft.com/?kbid=224453)

Immer noch lesenswert:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsql7/html/msdn_sql7perftune.asp
Infos zu den Performance-Countern:
http://www.sql-server-performance.com/performance_monitor_counters_sql_server.asp

Noch was zu RAID:
http://www.miracleas.com/BAARF/RAID5_versus_RAID10.txt

Einen schönen Tag noch,
Christoph
--
(Please post ALL replies to the newsgroup only unless indicated
otherwise)
Elmar Boye
2005-10-17 14:22:45 UTC
Permalink
Hallo Jürgen,
Post by Jürgen Föhr
Wir haben einen SQL 2000-Server auf W2K-Server mit Dual Xeon 3 GHz
und 4 GB RAM. Dazu einen ICP-SCSI-Controller mit einem RAID 5 (3
Platten) für die DB. Das Transaktionsprotokoll liegt auf einer
separaten SCSI-Platte. Der Arbeitsspeicher wird dynamisch
konfiguriert, das Maximum steht auf 3200 MB (macht bei der SQL
Std.-Version vermutlich keinen Sinn, lt. Taskmanager werden eh nur
1,7 GB von sqlserver.exe beansprucht).
Ohne Enterprise Edition gibt der zusätzliche Speicher allerdings
wenig Sinn. Da liegen 2 GB Speicher brach.
Siehe http://support.microsoft.com/?kbid=274750
How to configure memory for more than 2 GB in SQL Server
Post by Jürgen Föhr
Der Server hostet die ca. 7 GB große DB für unser ERP-System.
An verschiedenen Stellen gibt es nun immer wieder einmal
Performanceprobleme. Die Frage ist jetzt, ob und was an der
Konfiguration optimiert werden kann. Ist eine 7 GB große DB bei 2 GB
nutzbarem RAM noch OK, bzw. bis zu welcher DB-Größe kann man bei den
2 GB gehen?
Prinzipiell können 2GB (bzw. die beobachteten 1,7GB) durchaus
reichen, solange die Abfragen gut optimiert sind. Denn üblicherweise
sind bei ERP/OLTP Systemen viele Daten Historie und werden praktisch
kaum genutzt. Vorausgesetzt, der Optimierer kann die Daten bei Abfragen
gleich ausschliessen.

Sammele Dir dazu mal die häufigsten/langsamsten Abfragen und schaue,
ob für sie bessere Indizes möglich sind.
Teilweise kann das der Index-Optimierungsassistent erledigen.

Einige Hinweise wie das geht gibt u. a.:
http://www.sql-server-performance.com/sql_server_performance_audit10.asp


Evtl. ergeben sich daraus auch Hinweise wie das ERP Sytem selbst
bessere Abfragen verwenden könnte. Da müsstet Du Dich mit dem Hersteller
zusammensetzen.

Gruss
Elmar
Jürgen Föhr
2005-10-17 14:53:40 UTC
Permalink
Danke für eure schnellen und ausführlichen Hinweise.

An der Hardware kann es demnach nicht unbedingt liegen, was mein vorrangiges
Interesse war. Werde den Links mal nachgehen und sehen, was sich an
Optimierung finden läßt. Am ERP-System, bzw. den Abfragen kann ich nicht
allzuviel drehen, zum einen, weil das System ist wie es ist, zum anderen,
weil ich mich zu wenig auskenne.

Ich gehe jetzt davon aus, daß die genannte Hardware mit einer ca. 7 GB
großen Datenbank prinzipiell locker fertig werden sollte.

Jürgen
Post by Jürgen Föhr
Hallo zusammen.
Wir haben einen SQL 2000-Server auf W2K-Server mit Dual Xeon 3 GHz und 4 GB
RAM. Dazu einen ICP-SCSI-Controller mit einem RAID 5 (3 Platten) für die DB.
Das Transaktionsprotokoll liegt auf einer separaten SCSI-Platte. Der
Arbeitsspeicher wird dynamisch konfiguriert, das Maximum steht auf 3200 MB
(macht bei der SQL Std.-Version vermutlich keinen Sinn, lt. Taskmanager
werden eh nur 1,7 GB von sqlserver.exe beansprucht). Der Server hat außer
dem SQL-Server-Dienst keine weiteren Aufgaben.
Der Server hostet die ca. 7 GB große DB für unser ERP-System. An
verschiedenen Stellen gibt es nun immer wieder einmal Performanceprobleme.
Die Frage ist jetzt, ob und was an der Konfiguration optimiert werden kann.
Ist eine 7 GB große DB bei 2 GB nutzbarem RAM noch OK, bzw. bis zu welcher
DB-Größe kann man bei den 2 GB gehen? Gibt es außer der Neuinstallation der
(nicht vorhandenen und teuren) Enterprise-Version noch andere
Möglichkeiten,
Post by Jürgen Föhr
den brach liegenden RAM zu nutzen.
Für alle Tips, auch in Richtung Tuning oder Optimierung schon mal danke.
Jürgen
Michael Stickling
2005-10-18 11:54:48 UTC
Permalink
Hallo Jürgen,

damit Dein Server die eingestellten GB-Ram reserviert, muß er diese beim
Start in einem Block reservieren können, meißtens klappt daß aber nicht so
recht, da der Speicher oft von anderen Systemprogrammen fragmentiert wird.
Damit er es doch tun kann, versuche alle nicht unbedingt benötigten Dienste
und Programme zu beenden. Ansonnsten baut er sich den Speicherbereich
dynymisch zusammen. Die angezeigte Menge ist dann die, welche er bislang
maximal benötigte.

Eigentlich ist es irrelevant wie groß Deine DB wird. Wenn der Optimizer in
der Lage ist die abgefragten Daten über sehr selektive Indexe zu ermitteln,
dann ist die DB immer schnell. Also ist der Optimierungsansatz für Dich als
Administrator, zu schauen wie griffig die Abfragen sind. Da Du keinen
Einfluß auf die Programmierung hast, mußt Du evtl. nicht performante Indexe
durch bessere ersetzen.
Hilfreich ist auch die Verteilung der am stärksten frequentierten Tabellen
auf mehrere Festplatten und die Trennung von Tabellendaten und Indexen auf
unterschiedliche Platten.

Gruß
Michael
Post by Jürgen Föhr
Hallo zusammen.
Wir haben einen SQL 2000-Server auf W2K-Server mit Dual Xeon 3 GHz und 4 GB
RAM. Dazu einen ICP-SCSI-Controller mit einem RAID 5 (3 Platten) für die DB.
Das Transaktionsprotokoll liegt auf einer separaten SCSI-Platte. Der
Arbeitsspeicher wird dynamisch konfiguriert, das Maximum steht auf 3200 MB
(macht bei der SQL Std.-Version vermutlich keinen Sinn, lt. Taskmanager
werden eh nur 1,7 GB von sqlserver.exe beansprucht). Der Server hat außer
dem SQL-Server-Dienst keine weiteren Aufgaben.
Der Server hostet die ca. 7 GB große DB für unser ERP-System. An
verschiedenen Stellen gibt es nun immer wieder einmal Performanceprobleme.
Die Frage ist jetzt, ob und was an der Konfiguration optimiert werden kann.
Ist eine 7 GB große DB bei 2 GB nutzbarem RAM noch OK, bzw. bis zu welcher
DB-Größe kann man bei den 2 GB gehen? Gibt es außer der Neuinstallation der
(nicht vorhandenen und teuren) Enterprise-Version noch andere
Möglichkeiten,
den brach liegenden RAM zu nutzen.
Für alle Tips, auch in Richtung Tuning oder Optimierung schon mal danke.
Jürgen
Loading...