tom tuba 10 Geschrieben 14. September 2005 Melden Teilen Geschrieben 14. September 2005 Ich habe einen MS SQL Server 2000 im Einsatz, BS ist 2003Server. Hardware: 1x Xeon 3,0, 1GB Ram. Es laufen 6 Datenbänke mit einer Größe von 40.000 bis 1.000.000 DS, ca. 80 User. Nach einem Neustart des Servers läuft alles recht flott, aber nach spätestens einem Tag ist alles grottenlahm, der Serverprozeß belegt bis zu 800 MB Speicher. Hilft hier ein Ausbau auf 2GB oder gibts noch andere mögliche Ursachen ? Zitieren Link zu diesem Kommentar
MHeiss2003 11 Geschrieben 15. September 2005 Melden Teilen Geschrieben 15. September 2005 Schon mal mit dem Enterprise Manager draufgeschaut, wie die Datenbanken sich so verhalten? Ansonsten 1GB bei diesen Datenbanken, halte ich doch für viel zu wenig. Minimum 2GB, besser wären aber 8GB oder vielleicht einen zweiten SQL-Server aufsetzen... MfG Mario Zitieren Link zu diesem Kommentar
Tom_L3 10 Geschrieben 15. September 2005 Melden Teilen Geschrieben 15. September 2005 Guten Morgen, ich würde bei den Sessions und damit bei der Programmierung ansetzen - das ist nicht normal... schau einmal im Enterprise Manager, wie viele Nachmittags offen sind, ich denke, wenn sich das hochschaukelt, dann bleiben einige offen die das verursachen... Ansonsten schließe ich mich dem Vorredner an - 1 GB ist fast nichts für einen SQL mit sovielen DS / Nutzern... wie groß sind den die DB-Files? Grüße Tom Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 15. September 2005 Melden Teilen Geschrieben 15. September 2005 Die Speicherlast von 1GB klingt realistisch. In welchem Shrink-Modus befinden sich die DB's? Versuch sie auf Autoshrink zu stellen, dann wird der SQL-Server zyklisch versuchen, freien Speicher in den DB's zu optimieren. Am schnellsten ist ein SQL-Server, wenn er soviel RAM hat, das er seine DB's im RAM halten kann und noch genug Platz für das System hat. Also versuch mal die Größe deiner DB's zu ermitteln. Evtl. würde es sich auch lohnen, die Last der DB's und der Zugriffe auf zwei SQL-Server zu verteilen, indem du einen zweiten Server dazu baust und ein paar DB's verlagerst. Gruß Carsten Zitieren Link zu diesem Kommentar
tom tuba 10 Geschrieben 15. September 2005 Autor Melden Teilen Geschrieben 15. September 2005 Guten Morgen, ich würde bei den Sessions und damit bei der Programmierung ansetzen - das ist nicht normal... schau einmal im Enterprise Manager, wie viele Nachmittags offen sind, ich denke, wenn sich das hochschaukelt, dann bleiben einige offen die das verursachen... Ansonsten schließe ich mich dem Vorredner an - 1 GB ist fast nichts für einen SQL mit sovielen DS / Nutzern... wie groß sind den die DB-Files? Grüße Tom erstmal danke für die hilfe. unter aktuelle aktivität/Prozessinfo finde ich 96 Objekte-die meisten sleeping. Hab auf jeden fall nochmal speicher geordert, mal sehen, obs hilft die beiden größten DBs sind 700 und 1050 MB Zitieren Link zu diesem Kommentar
Tom_L3 10 Geschrieben 16. September 2005 Melden Teilen Geschrieben 16. September 2005 Hallo, 96 gegen 80 User ist eigentlich im Rahmen - bei der DB-Größe würde ich aber wirklich min. 2 GB besser etwas mehr an Speicher zuerst ausprobieren... die Regel vom Vorredner mit min. soviel Speicher wie DB-Größe + System bringt wirklich viel... Grüße Tom Zitieren Link zu diesem Kommentar
tom tuba 10 Geschrieben 21. September 2005 Autor Melden Teilen Geschrieben 21. September 2005 so, speicher ist bestellt. allerdings geht die Prozessorlast (sqlserverprozess) alle 2-3 Minuten auf 100% hoch, ansonsten springt sie zwischen 1 und 50% hin und her. acu habe ich bei unter prozessinfo häufig mehrer prozesse des gleichen users an der gleichen DB. ist das normal ??? Zitieren Link zu diesem Kommentar
Zearom 10 Geschrieben 21. September 2005 Melden Teilen Geschrieben 21. September 2005 Hohe Rechenlast geschieht vor allem dann wenn die Transactionlogs weggeschrieben werden. desweiteren kann die Rechenlast dadurch reduziert werden das Transactionlogs und Datenbank files auf verschiedenen Festplatten bzw. Besser Raidarrays liegen. Ich hatte da mal einen netten Artikel aus der Zeitung dot.net-Magazin (http://www.dotnetmagazin.de/) gelesen, der einem viele wege zur Performanceoptimierung gegeben hat. mal sehen ob ich den wiederfinde. Zitieren Link zu diesem Kommentar
tom tuba 10 Geschrieben 24. September 2005 Autor Melden Teilen Geschrieben 24. September 2005 BRUMM! ein teil des Problems ist gelöst. Ich hab die DBs nicht selbst programmiert, habe aber vor 2 tagen mal reingeschaut um zu sehen ob man da was optimieren kann. was seh ich: kein einziger Index gesetzt !! nichts !! null !! Nach dem ich die meisgebrauchten tabellen/spalten indiziert habe, läuft das ding wie ein rennpferd und das jetzt seit mehreren tagen..... Zitieren Link zu diesem Kommentar
rablu 10 Geschrieben 24. September 2005 Melden Teilen Geschrieben 24. September 2005 Schau Dir mal den Indexoptimierungsassistenten und den SQL Analyzer an. Denn Deine Last von ca. 80 Usern und ca. 1.000.000 Datensaetzen ist normalerweise nichts Dramatisches fuer einen SQL Server 2000.;) Gibt es mehr als ein RAID-Array auf dem Server? Ja-> Speichere die Transaktionslogs - wenn moeglich - auf einem RAID1 und auf einer unterschiedlichen Partition als die Datenbankdateien. Daneben kannst Du Performance bekommen, indem Du Speichergruppen nutzt und eine oft genutzte Tabelle und deren Indizies in eine Speichergruppe und eine andere oft genutzte Tabelle+deren Indizies in eine andere Speichergruppe stellst. Den Arbeitsspeicher wuerde ich hier auf min. 2 GB aufruesten. Zum Schluss auch das Thema Sicherung des SQL Servers beachten: Wenn die Datenbanken auf dem Wiederherstellungsmodell Vollstaendig stehen, dann muessen neben den Datenbankdateien auch die Transaktionslogs regelmaessig gesichert werden, da sonst die Transaktionslogs die Platte vollaufen lassen. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.