Zum Inhalt springen

Grundsätzliche Funktionsweise SQL-Server / Leistung


Sven Eichler

Empfohlene Beiträge

Hallo liebe Leute,

ich bin mir nicht sicher, ob dieser Thread hier hereingehört oder vielleicht doch eher unter Hardware, also bitte verschieben, falls notwendig.

Hintergrund:

Wir haben hier eine webbasierte Anwendung laufen, die auf SQL-Server zugreift. Es sind mehrere Datenbanken vorhanden, im Ganzen so ca. 30GB.

Bisher gab es keine Performanceprobleme, es arbeiten momentan ca. 180 User darauf. Jetzt sollen weitere 80 hinzukommen, da ein neuer Standort angebunden wird. Bei Tests (also nach dem Einbinden der (Test-)Datenbank) ist uns aufgefallen, dass es zu Performance-Einschränkungen kommt:

So dauern Suchvorgangäe jetzt beispielsweise 10 Sekunden, bei denen vorher 3 Sekunden ausreichend waren.

Zur Hardware:

Frontend:

QuadCore INTEL Xeon 2.66GHz

4 GB RAM

Windows Server 2003

SQL-Server:

QuadCore INTEL Xeon 2.66GHz

8GB RAM

Windows Server 2003

Gigabit-Anbindung

Ein Festplattenmonitoring hat gezeigt, dass die Platten bei ca. 20 Auslastung sind, die CPU.-Auslastung Frontend liegt bei max 30%, die des DB max 50%. RAM Frontend frei ohne Ende, Auslagerungsdatei OK. RAM DB: 7GB SQL-Server, Auslagerungsdatei: 7GB.

Jetzt frage ich Euch nach Eurer Erfahrung:

Wenn man den DB auf 16GB aufstocken würde, sollte der ja ca. 8GB mehr SQL-Daten im RAM vorhalten können. Würde das etwas Leistung bringen oder eher nicht, da sich die Platten ja eher zu langweilen scheinen?

Für Erfahrungswerte bin ich wirklich dankbar, da das GoLive! in ca. 3 Wochen stattfinden soll... :rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

SQL-Server ist ein allgm. Begriff: mySQL, MS SQL, Oracle, Postgresql,.....

sind alles SQL Server. Du solltest hier schon das genaue Produkt nennen.

Ebenso sprichst Du von SQL-Servern, d.h. Du hast hier mehrere Server im Einsatz? Ebenso die eingesetzte Software, denn bei einer Eigenentwicklung ist die Frage, wo im Moment die Flaschenhälse sind, man kann sicherlich nicht pauschal sagen für n User und x Datenbanken braucht man xn Hardware.

Je nach Umfang der Anfragen kann auch das Netz ein entsprechendes Problem sein

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die zusätzlichen 8GB RAM schaden garantiert nicht, nur ob man damit den Performance-Engpaß behebt oder nur marginäre Verbesserungen erzielt kann ich dir nicht sagen. Ich würde als erstes eingrenzen, ob die Software oder die Hardware den Engpaß verursacht.

Sind nur Lesevorgänge so langsam? Ist das Verhalten bei den Suchvorgängen reproduzierbar? Wie sieht der Ausführungsplan der langsamen Abfragen aus? Wieviele Sperren sind zu dem Zeitpunkt auf der Datenbank?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Verflixt, jetzt hab ich mir Mühe gegeben, die Sache bestmöglich zu beschreiben, und dann vergess ich die Anwendung...:upps

- Es ist genau EIN Microsoft SQL 2005-Server im Einsatz

- Es handelt sich NICHT um eine Eigenentwicklung

- Keine DB-Sperren, jedenfalls nichts, was reproduzierbar wäre.

- Fehler ist reproduzierbar, jedesmal mit ziemlich genau dem gleichen Ergebnis

- Bei den Selects geht es zum Beipiel darum, einen Kunden in einer Datenbank anhand eines Suchkürzels zu finden. In der DB sind rund 70.000 Kunden hinterlegt. Aktionen aus einem Kunden heraus öffnen, Belege betrachten, etc.

Mir ist nicht ganz klar, was Du meinst mit "Ausführungsplan für langsame Abfragen", es handelt sich bei den Abfragen um das "Tagesgeschäft" der User, die werden also regelmäßig und ständig ausgeführt. Wie gesagt, eigentlich läuft es echt gut, seit aber die neue Testdatenbank auf dem Server ist, kann man die Arbeit darauf eher gemütlich in Angriff nehmen... ;-)

Link zu diesem Kommentar
Auf anderen Seiten teilen

- Bei den Selects geht es zum Beipiel darum, einen Kunden in einer Datenbank anhand eines Suchkürzels zu finden. In der DB sind rund 70.000 Kunden hinterlegt. Aktionen aus einem Kunden heraus öffnen, Belege betrachten, etc.

Sorry, aber verstehe das nicht falsch, wenn ich schreibe: Meine Glaskugel ist gerade in der Spüle. Keiner hier kann in Deinen Server wirklich bewerten und sinnvolle Empfehlungen geben. Ich würde ja hier auf eine nicht indizierte Spalte tippen

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, schon klar, ich wollte ja auch keine detailiierte, technische Lösung, sondern wirklich nur Erfahrungswerte, um ein "Gefühl" dafür zu entwickeln...:

Jetzt frage ich Euch nach Eurer Erfahrung:

Wenn man den DB auf 16GB aufstocken würde, sollte der ja ca. 8GB mehr SQL-Daten im RAM vorhalten können. Würde das etwas Leistung bringen oder eher nicht, da sich die Platten ja eher zu langweilen scheinen?

Für Erfahrungswerte bin ich wirklich dankbar, da das GoLive! in ca. 3 Wochen stattfinden soll...

Bearbeitet von Sven Eichler
Link zu diesem Kommentar
Auf anderen Seiten teilen

So dauern Suchvorgangäe jetzt beispielsweise 10 Sekunden, bei denen vorher 3 Sekunden ausreichend waren.

Schauen wir mal, welche Schritte sich denn in etwa hinter diesen 10 Sekunden verbergen:

  1. User klickt auf den Button "Suchen" - Die Zeit läuft
  2. Die Abfrage läuft übers Netzwerk bis zum Eingangsserver
  3. Eine Webserver/Appserver etc. bekommt die Abfrage, wertet sie aus und sendet sie weiter an die DB
  4. Die Abfrage läuft übers Netzwerk an die DB
  5. Die DB bekommt die Abfrage, erstellt einen Plan und führt sie aus
  6. Die Abfrage ist beendet, die Daten werden übers Netzwerk zurück an den Web/Appserver gesendet
  7. Der Web/Appserver bereitet die Daten ggf. auf und sendet sie wiederum übers Netzwerk an den Client
  8. Der Client bekommt die Daten und beginnt diese anzuzeigen
  9. Der User sieht die ersten Daten. 10 Sekunden sind vorbei

Solange Du jetzt nicht hinter diese einzelnen Schritte eine wiederholbar meßbare Zeit dahinterschreiben kannst, so das sich in Summe die 10 sekunden ergeben bringt es überhaupt nichts über Hardwareaufrüstung oder Indizes zu sprechen. Diese Vorgehensweise war und ist die beste Möglichkeit eine Tuningmaßnahme so teuer und ineffektiv wie nur irgendwie möglich zu gestalten.

Also: Erst rausfinden woran es liegt. In welchen Punkten wird die meiste Zeit verbraucht? Erst dann kann man sich die einzelnen Punkte genauer ansehen und gezielte Maßnahmen treffen.

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...