Jump to content
Melde dich an, um diesen Inhalt zu abonnieren  
Husker

MS SQL Server 2012 Datenbank Optimieren, aber wie Richtig?

Empfohlene Beiträge

Moin,

 

Informiere dich über Backup / Recovery von SQL Servern. Du willst nicht jede Stunde ein DB Backup erstellen sondern nur Transaktionslogsicherungen.

 

 

korrekt. Wir hatten mal einen Fall, da hat ein Kunde "nur" alle vier Stunden ein DB-Backup erzeugt. Das Backup dauerte vier Stunden ... der Server war also immer unter unnötig hoher Last. Manchmal lief ein Backup noch, wenn das nächste starten sollte, was jedes Mal zu Fehlern geführt hat.

 


http://www.faq-o-matic.net/2011/01/03/sql-server-wie-datenablage-backup-und-recovery-funktionieren/

 

Gruß, Nils

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

 

Und auf dem Server läuft noch weiterer Workload? Andere VM's? Dann ist es kein Wunder, dass das System langsam ist.

Wird bei euch keine Verfügbarkeit gefordert?

 

Ja ...

Also ...

Der Server also die Pysische Maschiene beherbergt mehrere VMs

 

1. DNS (DC)

2. SQL Server

3. Linux Server für eine kleine Webapplication --> Hat aber nur 3 GB RAM und keine wirklich auslastung

4. Linux Server für Webapplication --> Der wurde für ein ShowCase eingerichtet (also der macht im Moment nix)

5. Terminal Server der die Application für Externe Mitarbeiter bereitstellt, sind aber selten mehr als User gleichzeitig online ,.,,. meist eher wir Admins .....

 

An dieser stelle sei noch eins geagt ...

ich weis selber das die Config so nicht Optimal ist den DC als HV laufen zu lassen ist vermutlich das erste ...

aber um es Klip und klar zu sagen --> ich habe nur diesen einen Server ....

 

 

 

Informiere dich über Backup / Recovery von SQL Servern. Du willst nicht jede Stunde ein DB Backup erstellen sondern nur Transaktionslogsicherungen.

 

Tja das ist nach Indexzierung meine nächste Baustelle ....(Wissenstechnisch)

wenn es Tiefer in den SQL Server geht, fehlt halt einfach wissen :-)

Wird nachgeholt versprochen !

 

Bisher hatten wir nur 1 x die Situation das wir ein Backup zurückspielen mussten, damals hatten wir noch die Transaktions logs ...

wir haben es aber nur über das Full Backup wieder hinbekommen ,,,,

 

 

 

Wird bei euch keine Verfügbarkeit gefordert?

 

naja klar, aber man kann ja nicht Hexen ... Klar ein 2Ter SQL Server als FailOver wäre Sexy ...

aber wenn der Kunde (Chef) das nicht zahlen will, was willste machen !

 

 

Sind die Platten für OS und VM's oder gibt es für den Hypervisor eigene Disks?

 

Also der Server Arbeitet mit 2 Partitionen .....

Wenn ich hier ein bild hochladen könnte, würde ich euch screenshots machen, aber ich kann nur bilder Links einfügen aber keine Hochladen ...

 

1 Partition OS Server

2 Partition Datenablage --> z.b. für die Virtuellen Disks ...

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Moin,

also SATA-Platten im HOST.

Wahrscheinlich läuft auch noch das Host OS (Hyper-V) und X weitere VM's auf dem gleichen RAID, oder? Wohlmöglich noch ein kleiner Exchange?

Wie ich bereits angemerkt habe würde ich mich erst einmal um eine vernünftige Hardware im Host kümmern, bevor ich mir Gedanken um eine Optimierung der Datenbank machen würde...

In einen performanten Server gehören zumindest SAS-Platten (besser noch SSD)! Und als Faustregel gilt: Je mehr Spindeln desto schneller!

 

Interessant auch die Konstellation. 32 vCore's und SAS-Platten im HOST! Welcher Id..t stellt ein solches System zusammen!?

 

Gruß

Dirk

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Interessant auch die Konstellation. 32 vCore's und SAS-Platten im HOST! Welcher Id..t stellt ein solches System zusammen!?

Du meinst SATA/NL-SAS ;) Und wahrscheinlich war's "groß", schnell kommt erst danach als Anforderung. ;)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Ja ...

Also ...

Der Server also die Pysische Maschiene beherbergt mehrere VMs

 

1. DNS (DC)

2. SQL Server

3. Linux Server für eine kleine Webapplication --> Hat aber nur 3 GB RAM und keine wirklich auslastung

4. Linux Server für Webapplication --> Der wurde für ein ShowCase eingerichtet (also der macht im Moment nix)

5. Terminal Server der die Application für Externe Mitarbeiter bereitstellt, sind aber selten mehr als User gleichzeitig online ,.,,. meist eher wir Admins .....

 

An dieser stelle sei noch eins geagt ...

ich weis selber das die Config so nicht Optimal ist den DC als HV laufen zu lassen ist vermutlich das erste ...

aber um es Klip und klar zu sagen --> ich habe nur diesen einen Server ....

 

 

Tja das ist nach Indexzierung meine nächste Baustelle ....(Wissenstechnisch)

wenn es Tiefer in den SQL Server geht, fehlt halt einfach wissen :-)

Wird nachgeholt versprochen !

 

Bisher hatten wir nur 1 x die Situation das wir ein Backup zurückspielen mussten, damals hatten wir noch die Transaktions logs ...

wir haben es aber nur über das Full Backup wieder hinbekommen ,,,,

 

 

naja klar, aber man kann ja nicht Hexen ... Klar ein 2Ter SQL Server als FailOver wäre Sexy ...

aber wenn der Kunde (Chef) das nicht zahlen will, was willste machen !

 

Also der Server Arbeitet mit 2 Partitionen .....

Wenn ich hier ein bild hochladen könnte, würde ich euch screenshots machen, aber ich kann nur bilder Links einfügen aber keine Hochladen ...

 

1 Partition OS Server

2 Partition Datenablage --> z.b. für die Virtuellen Disks ...

 

Also nochmal!

Kümmere Dich darum, dass der HOST ein performantes Plattensystem bekommt! Bei 5 VM's und dem HOST auf einem SATA RAID mit 4 Disks brauchst Du Dich nicht zu wundern, wenn der SQL-Server lahmt! Wo soll die Performance denn herkommen?

 

Gruß

Dirk

Du meinst SATA/NL-SAS ;) Und wahrscheinlich war's "groß", schnell kommt erst danach als Anforderung. ;)

 

Für mich läuft auch NL-SAS unter SATA. ;)

Von den IOPS her macht das keinen merkbaren Unterschied.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

 

Moin,

also SATA-Platten im HOST.

Wahrscheinlich läuft auch noch das Host OS (Hyper-V) und X weitere VM's auf dem gleichen RAID, oder? Wohlmöglich noch ein kleiner Exchange?

Wie ich bereits angemerkt habe würde ich mich erst einmal um eine vernünftige Hardware im Host kümmern, bevor ich mir Gedanken um eine Optimierung der Datenbank machen würde...

In einen performanten Server gehören zumindest SAS-Platten (besser noch SSD)! Und als Faustregel gilt: Je mehr Spindeln desto schneller!

 

Interessant auch die Konstellation. 32 vCore's und SAS-Platten im HOST! Welcher Id..t stellt ein solches System zusammen!?

 

Gruß

Dirk

 

Also ...

Auch hier muss ich mich erstmal Korregieren .,..

habe jetzt beim Hersteller angerufen und Gefragt ...

 

Verbaut ist ein Intel PCI E 3.0 RMS 25PB040 Raidcontroller mit 1 GB Cache

4 x 2 TB Platten SAS nicht SATA3 (habe ich verwechselt)

 

NEIN ES läuft kein Exchange !

 

Was die Hardware angeht, die haben wir nun mal ... mehr ist aktuell einfach nicht Drin ... ! Punkt !

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Kurz mal Klugscheiß-Modus: SATA und SAS sind elektrisch ziemlich identisch. SAS spricht dafür Hochdeutsch und SATA nur Bayrisch.

Daher kann eine SAS-Controller i.d.R. mit SATA umgehen. Oder Besser. SAS versteht SCSI-Kommandos und SATA nicht.

 

http://www.elektronik-kompendium.de/sites/com/1105071.htm

 

Daher finde ich HDD's die als SATA mit SAS-Schnittstelle verkauft werden, so sinnvoll wie  vierrädriges  Auto, das mit 4 Rädern verkauft  wird ;) 

 

Generell  werden SAS-HDD aber mit  höheren Datenraten/MTBF/usw. beworben und  verkauft.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Daher finde ich HDD's die als SATA mit SAS-Schnittstelle verkauft werden, so sinnvoll wie  vierrädriges  Auto, das mit 4 Rädern verkauft  wird ;)

Jaja. ;) Du weißt doch was ich meine. :p

 

Und ein vierrädriges Auto ohne 4 Räder wäre ja auch doof. ;)

bearbeitet von NorbertFe

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Also ...

Auch hier muss ich mich erstmal Korregieren .,..

habe jetzt beim Hersteller angerufen und Gefragt ...

 

Verbaut ist ein Intel PCI E 3.0 RMS 25PB040 Raidcontroller mit 1 GB Cache

4 x 2 TB Platten SAS nicht SATA3 (habe ich verwechselt)

 

NEIN ES läuft kein Exchange !

 

Was die Hardware angeht, die haben wir nun mal ... mehr ist aktuell einfach nicht Drin ... ! Punkt !

Also ...

Auch hier muss ich mich erstmal Korregieren .,..

habe jetzt beim Hersteller angerufen und Gefragt ...

 

Verbaut ist ein Intel PCI E 3.0 RMS 25PB040 Raidcontroller mit 1 GB Cache

4 x 2 TB Platten SAS nicht SATA3 (habe ich verwechselt)

 

NEIN ES läuft kein Exchange !

 

Was die Hardware angeht, die haben wir nun mal ... mehr ist aktuell einfach nicht Drin ... ! Punkt !

Und was erwartest Du jetzt hier im Forum? Das Dir jemand den Schalter für SQL zeigt der Performance bringt? Leider kann hier niemand zaubern.

Du zäumst das Pferd von hinten auf! Mit dieser Hardware (Speichersystem) bekommst Du niemals eine vernünftige Performance hin.

Punkt!

 

Und ja, Du hast 100%ig SAS-Platten in Deinem Server. Mag sein, dass es sich um NL-SAS handelt. Das sind technisch aber nur SATA Platten die SAS Protokoll sprechen. Von der Performance sind die gleich lahm wie SATA. Das Stichwort lautet: IOPS

Input/Output Operation per Second. Eine SATA Platte liefert ca. 80 IOPS. Eine SAS Platte bringt ca. 200 IOPS.

PUNKT!

 

Wie sieht es mit den Latenzzeiten auf dem Host aus?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

 

 

Und was erwartest Du jetzt hier im Forum?

 

Erst einmal Garnichts ....

Ich hatte die Hoffnung das Ihr mir ein paar gute Tipps geben könnt wie ich Grundsätzlich an die Sache Heran gehen kann ....

Klar --> Ich kann mir ein Buch kaufen es Lesen und dan loslegen aber die Erfahrung zeigt .... es geht nichts über Erfahrung und genau die fehlt mit in den einsprechenden Bereichen ....

 

 

 

Und ja, Du hast 100%ig SAS-Platten in Deinem Server. Mag sein, dass es sich um NL-SAS handelt. Das sind technisch aber nur SATA Platten die SAS Protokoll sprechen. Von der Performance sind die gleich lahm wie SATA. Das Stichwort lautet: IOPS

 

Also

da ich mir nicht vorstellen konnte, das mir der Serverhersteller Lame platten verkauft hat.

habe ich noch einmal angerufen, und es mir 

 

1. noch einmal bestätigen lassen, das es sich um vollwerttige SAS platten handelt ... --> Aussage JA !

2. habe ich mir natürlich noch das genaue Modell sagen lassen, damit ich das überprüfen kann ---> Soweit ich das Beurteilen kann sind es Vollwertige SAS platten

 

Model: Seagate Constellation ES.3 (ST2000NM0023) So um das Abschließend zu klären sind das nun SAS platten oder nicht ?

Als ich den Server gekauft habe war eine Anforderung Schnelle Platten.....

 

Damit Aber auch klar ist, das ich mir eure Hinweise zu Herzen nehme  habe ich mir gleich ein Angebot schicken lassen den Server mit 2 SSD Platten aufzurüsen für das eigentliche Main OS ....

 

 

 

Wie sieht es mit den Latenzzeiten auf dem Host aus? 

 

Ich bin mir aktuell nich ganz sicher wie die Frage gemeint ist (Sehr Allgemein)

aber Grundsätzliches dazu:

 

Das Netzwerk ist komplett 1Gbit

Wir haben außschließlich Cat 7/6 Kabel Verlegt ...

Wir haben nur Hochwerte Switches gekauft mit Metallgehäuse von Netgear ..

 

Was nun aber tatsächlich im netzwerk los ist ....

Ich habe Speedtests gemacht und habe rein rechnerisch fast die Volle Bandbreite anliegen ...

Beim Kopieren von Daten im Netzwerk erreiche ich Stabiele 98 MB/s

 

oder meintest du mit Latenz was anderes ?

 

Ich denke wirklich das die Langsam Werdende Performance vermutlich mit 2 Faktoren zusammenhängt

 

1. Den Fehlenden Indizes

2. Schlechte SQL Abfragen im Frontend .... --> viele SELECT * Abfragen die ja einfach ein Performance Killer sind ...

Ich werde erstmal morgen die Ergebnisse der Aufzeichnungen des SQL Profilers auswerten und schauen, welche Abfragen überhaupt am meisten stattfinden ...

alles andere wäre eh nur geraten :-)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

1. Den Fehlenden Indizes

2. Schlechte SQL Abfragen im Frontend .... --> viele SELECT * Abfragen die ja einfach ein Performance Killer sind ...

Beiden SQL Abfragen kannst Du ja anfangen 'Verbesserungen' einzubauen. Schadet nicht und ist sauberer als mit dem Stern. ;)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Japp anfangen werde ich damit auch ...

aber bis ich aus dem  Prog alle SELECT * Abfragen raus habe, haben wir die nächste Eiszeit :-)

Ich weis es wirklich nicht genau, aber ich denke mal wir reden hier ganz locker von Mehreren Tausend SQL Statments im Code :-)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
Melde dich an, um diesen Inhalt zu abonnieren  

×