Jump to content

Husker

Members
  • Gesamte Inhalte

    14
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von Husker

  1.  

     

    Hört sich so an, als würdest du glauben 97% mal eben rauszuholen. Kann durchaus sein, aber ich glaubs erst, wenn ich es sehe.  ;) 

     

    Quatsch ..

    Das war nur das was die Analyse ergeben hat ....

    wenn die Performance um 10% zunehmen würde wäre ich schon zufrieden :-)

    ICh weis ja nicht mal auf was sich dieser Wert bezieht :-)

     

    Solbald ich Handfeste Resultate habe werde ich das hier auch mitteilen ...

    kann schon sein das das kaum etwas bringen wird, weiß ich aber erst wenn ich es getestet habe

    Dann wird es Zeit die SELECT * Abfragen aus dem FE in SPs auszulagern.

     

    naja neeee

    also wenn ich das alles richtig geschnallt habe sind SELECT * immer Doof da dies zwangsläufig intern zu einem Loop führen 

    und da ist es egal ob es vom FE oder SP kommt .... KLAR die SP werden immer schneller sein da sie lokal laufen ...

    aber das wäre doch ein wenig so als würdest du an dein Auto ne Rakete bauen ohne zuerst mal einen blick in den Motor zu werfen ...

    ja der vergleich hinkt etwas aber ein anderer fällt mir gerade nicht ein !

  2. Moin,

     

    schau dire mal den Datenbankoptimierungsratgeber im SQL Server Management Studio an.

     

    Dass der Entwickler einer Datenbank gute Hinweise zur Optimierung geben kann, ist zwar richtig. Das Anlegen und Warten von Indizes gehört aber zu den Kernaufgaben eines Datenbankadministrators (DBA), weil diese Rolle mit der tatsächlichen Infrastruktur mehr zu tun hat.

     

    Gruß, Nils

     

    Hallo Nils,

    ich möchte mich bei dir bedanken den dein Hinweis war eigentlich genau das was ich gesucht hatte ....

     

    Vielleicht hier mal für leute die das gleiche Problem haben:

    Mann kann über den Profiler im MSMMS z.b. 24 Stunden den Traffic der DB Aufzeichnen und von dem Tool analysieren lassen,

    dieses Ermittelt das welche Indizies angebracht sind und mann kann diese gleich als T-SQL Script bekommen ....

     

    Sicher wird das nicht das Ultimo sein aber in meinem Fall sagte das Tool Geschätzte Optimierung 97% :-)

  3.  

     

    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 :-)

  4.  

    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 !

  5.  

    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 ...

  6. Hallo

     

     

    Hat die VM 4 Cores zugewiesen oder hat der Host 4 Cores? 20 GB Ram sind u.U. gar nicht nötig.

     

    Ja die 4 Cores gehören der VM, der Host hat 32 Cores --> Habe mich da sogar vertan den die VM hat 6 Cores ....

     

     

     

    Sind das Transaktionslog Sicherungen oder Datenbanksicherung?

     

    Datenbanksicherungen !!!

     

    Früher haben wir auch die Transaktionslogs gespeichert, das habe ich aber abgeschaltet weil wirt die nie brauchten !

     

     

    Bei einem Raid Set geht das mit den Spindeln aufteilen Schlecht, aber ich würde die SQL Daten, Logs und TempDB nicht auf der OS Disk lassen sondern min. eine virtuelle Disk für die Logs und eine für die Daten erstellen und wenn du magst eine für TempDB (jenachdem wie sehr das genutzt wird, sonst Temp DB zu den User Datenbanken). Man kann die Volumens mit optimierten Block Größen formatieren, wird aber nicht so kritisch sein.

    Evtl. ist auch ein eigenes Volume für die Backups sinnvoll oder gleich eine Sicherung auf ein anderes Medium.

     

    Das werde ich mal versuchen

    Welche Blockgrößen wären den für ein Datenbank System Optimal ?

     

     

     

    Um was für einen SQL Server handelt es sich (z.B. Express-Edition, Standard)?

     

    MS SQL Server 2012 Standard

     

     

     

    Um was für ein Plattensystem handelt es sich auf dem Host (SAS-Platten, SATA-Platten, Wie viele Platten im RAID5, RAID-Controller mit Cache und BBU?)

     

    Jetzt wird es schon schwieriger ...

    der Server hat 4 x 3 TB Platten als RAID 5 Verbund, es handelt sich um SATA 3 Platten 

    Soweit ich weis wird 1 der 4 Platten zum Spiegeln verwendet ! --> Hier hört es aber solangsam auf .... :-)

     

     

     

    Bei den bisher gemachten Aussagen gehe ich stark davon aus, dass das Problem mehr in der Hardware zu suchen ist als in der Konfiguration bzw. Optimierung des SQL-Servers!

     

    Ein Problem in dem Sinne gibt es ja noch nicht ...

    Ja so langsam könnte man mal anfangen zu Optimieren, aber die Geschwindigkeit ist aktuell noch Akzeptabel ...

    Will nur nicht warten bis es anders ist zumal die Optimierung ja nicht in 1 Stunde getan ist ...

     

     

     

    - Reorg  der  Tabellen durchführen

     

    Sehr guter Hinweis, das hatte ich beim Neuaufsetzen des SQL Server nämlich vergessen :-)

     

     

     

    Ich erlebe es immer wieder, dass man Anwendungen entweder ganz ohne Indizes (außer  bei PK's), sinnfreien  Indizes  (hier gab es tatsächlich mal einen fall, im dem alle Spalten einer Tabelle im Index vertreten waren) oder veralteten Indizes bekommt.

     

    Genau das ist ja bei uns Aktuell der Fall, als ich vor fast 8 Jahren mit der Entwicklung Anfing war ich noch grün hinter den Ohren und wusste es nicht besser, und bisher lief alles eigentlich gut, wie gesagt, so langsam fängt man aber an die wachsende Datenbank zu merken, und ich wollte das jetzt schon mal beginnen bevor das Kind in den Brunnen gefallen ist :-)

     

    So ich hoffe ich konnte alle eure Fragen zur zufriedenheit beantworten :-)

     

    Danke schon einmal für euer bemühen mir zu helfen !

  7. Die Herangehensweise ist im ersten Schritt, das der Entwickler der Applikation / DB diese Optimiert. Dieser weiß am besten was zu optimieren ist.

     

    Falsch Optimieren kann die Performance auch verschlechtern. Zu viele Indizes machen z.B. Insert, Update und Delete Querys langsam.

     

    Wie sieht das Sizing (v.a. Ram und Disk Konfiguration) des SQL Servers aus? Evtl. gibt es dort schon Probleme.

    Es gibt auch andere Wege einen SQL Server zu optimieren. Logs, Daten und TempDB auf eigenen Spindeln ablegen, Volumens nicht mit Default Block Größen formatieren, diverse SQL Server Einstellungen,...

     

    Jetzt kommen wir der Sache schon näher ... :-)

    also der SQL Server läuft aktuell auf einer HyperV Maschien unter Windows Server 2012 R2

    Ram hat er 20 GB wovon aktuell nur 8 Benutzt werden ...

    4 Cores Intel I28 irgendwas ....

     

    Die Virtuelle HDD hat 250 GB wobei aktuell 135 Belegt sind, das meiste aber durch DB Backups die nachts verschoben werden ...

    Die Originalplatten also die Tatsächlichen laufen in einem RAID 5 SYSTEM !

    Die Formatierung, sowohl der Virtuellen als auch der Pysischen Platten ist Standart !!! (NTSF)

     

    Der SQL Server legt stündlich ein Backup der DB an ...

    Hilft das erstmal weiter ?

  8. Hallo,

    das alles ist schon klar ...

    ich erwarte ja auch nicht das Ihr meine Datenbank Optimiert ....

     

    Was ich wissen wollte wie man am Besten an diese Sache Herangehen kann ....

    Aktuell lasse ich mal den Profiler Laufen und schneide alles mit ... das lasse ich in eine Tabelle schreiben ...

    Das Läuft noch bis 22 Uhr heute Abend dann wollte ich die Statments mal Gruppieren um zu sehen welches die häufigsten abfragen sind ....

     

    Dan wollte ich schauen wie lange diese Abfragen im einzelnen dauern und dann anfangen über Indizes  die Abfrage dauer zu reduzieren ..

    Wie gesagt, es geht mir nicht um die Lösung sondern um die Herangehensweise :-)


    oder z.b. wie man abfragen überhaupt erstmal findet die lange brauchen .....

  9. Es gibt den SQL Profiler um den SQL Server zu analysieren.

    Habt ihr aktuell Performance Probleme?

    Was läuft denn dort für eine Applikation? Was sagt der Hersteller zur Optimierung?

     

    Jupp den kenne ich ,,,,

    Der Hersteller sagt nix dazu ... die Application ist eine Inhouse Entwicklung ...

    die auf .NET basiert. Vorranging Rechungsmanagment und Stammdatenverwaltung ... (Diese Beschreibung wird dem Original natürlich nicht gerecht)

     

    Performace Probleme in dem Sinne haben wir nicht ,,,,

    noch ist die Geschwindigkeit akzeptabel aber halt nicht wirklich gut ...

     

    Wir Refactorn jetzt aber 2 Große Module im Frontend, in diesem Zuge wollten wir die DB gleich mit

    Optimieren ... wenn wir es eh alles gleich mal anfassen müssen ...

     

    Den Profiler habe ich immer zur nur Live Ansicht benutzt, kann man sich dort auch irgendwelche Auswertungen ziehen welche SQLs besonders häufig eingesetzt werden ?

     

    Danke schon mal für deine Antwort

  10. Hallo,

    aktuell beschäftige ich mich damit eine SQL Datenbank zu Optimieren. Aktuell liegen außer des PK keine 

    Indizes auf den Tabellen, ich gehen also davon aus das alleine das einrichten solcher schon einmal einen großen Mehrwert bringen wird ....

     

    Die Frage an der stelle ist nun wie geht man am schlausten an die Sache herran ...

     

    Hier vielleicht mal ein paar fakten zur Datenbank ...

     

    - MS SQL Server 2012

    - DB Größe ca. 3 GB 

    - ca. 20 Tabellen mit bis zu 50k Zielen 

      die meisten werden sich aber im bereich von 5 - 10k Zeilen bewegen ...

    - Wenig Binärdaten (Gibt nur eine 2 Tabellen die Bilder als Blob Feld enthalten .. 

     

    Gibt es ne Möglichkeit grundsätzlich erst einmal herauszufinden welche Abfragen am häufigsten getätigt werden ? Ich hätte jetzt ein paar zusätzliche Zeilen Code ins Frone End gepackt der alle SQLs die über das Frontend kommen gespeichert hätte so könnte man sehen welche SQLs am häufigsten eingesetzt werden ... aber das geht doch bestimmt auch noch schlauer ...

     

    ich bin für jeden Tipp dankbar ..

    mir geht es hier auch nicht um eine Fertig Lösung, ich möchte einfach nur bereifen wie man es richtig macht ...

     

    Danke im Vorraus

     

    Husker

     

     

×
×
  • Neu erstellen...