Zum Inhalt wechseln


Foto

MS SQL Server 2012 Datenbank Optimieren, aber wie Richtig?

MS SQL

  • Bitte melde dich an um zu Antworten
46 Antworten in diesem Thema

#31 Sunny61

Sunny61

    Expert Member

  • 22.107 Beiträge

 

Geschrieben 18. November 2014 - 21:45

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


OMG, Du solltest da wirklich besser auf Stored Procedures umstellen. Sowas hat in einem FE nix verloren.
Gruppenrichtlinien: http://www.gruppenrichtlinien.de/

#32 NorbertFe

NorbertFe

    Expert Member

  • 30.609 Beiträge

 

Geschrieben 18. November 2014 - 21:51

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 ?[/size]


http://www.seagate.c...ku=ST2000NM0023

•World’s fastest 6TB nearline hard drives

http://www.seagate.c...69-1-1210us.pdf

Schrub ich was von NL-SAS? ;)

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


Naja dann sollte man aber keine mit 7200RPM kaufen. ;)


Bye
Norbert
  • DocData gefällt das

Make something i***-proof and they will build a better i***.


#33 Husker

Husker

    Newbie

  • 14 Beiträge

 

Geschrieben 19. November 2014 - 13:31

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



#34 NorbertFe

NorbertFe

    Expert Member

  • 30.609 Beiträge

 

Geschrieben 19. November 2014 - 13:37

Und jetzt ist es schnell? :)

Make something i***-proof and they will build a better i***.


#35 Husker

Husker

    Newbie

  • 14 Beiträge

 

Geschrieben 19. November 2014 - 14:02

 

 

Und jetzt ist es schnell?

 

Schnell ist ein sehr Relativer Begriff ....

ich habe die Scripte noch nicht ausgeführt ,....

ich wollte vorher mal ein paar vergleichsmessungen machen um den Zeitunterschied gut bewerten zu können.

Dazu hatte ich aber noch keine zeit ... 

 

hört sich so an als ob du deine zweifel hast ...



#36 zahni

zahni

    Expert Member

  • 16.399 Beiträge

 

Geschrieben 19. November 2014 - 14:03

Dafür  ist eine Testumgebung immer  gut. Wenn  man sie hat...


Wen du nicht mit Können beeindrucken kannst, den verwirre mit Schwachsinn!


#37 Husker

Husker

    Newbie

  • 14 Beiträge

 

Geschrieben 19. November 2014 - 14:04

 

 

OMG, Du solltest da wirklich besser auf Stored Procedures umstellen

 

haben wir bereits im einsatz :-)


 

 

Dafür  ist eine Testumgebung immer  gut. Wenn  man sie hat...

Auch darum haben wir uns schon gekümmert,

leider hat die Testumgebung natürlich weniger Ressourcen als das PRD system ...

mehr war nicht verfügbar :-)


Bearbeitet von Husker, 19. November 2014 - 14:07.


#38 Sunny61

Sunny61

    Expert Member

  • 22.107 Beiträge

 

Geschrieben 19. November 2014 - 14:21

haben wir bereits im einsatz :-)



Dann wird es Zeit die SELECT * Abfragen aus dem FE in SPs auszulagern.
Gruppenrichtlinien: http://www.gruppenrichtlinien.de/

#39 NorbertFe

NorbertFe

    Expert Member

  • 30.609 Beiträge

 

Geschrieben 19. November 2014 - 14:27

hört sich so an als ob du deine zweifel hast ...


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

Make something i***-proof and they will build a better i***.


#40 Husker

Husker

    Newbie

  • 14 Beiträge

 

Geschrieben 19. November 2014 - 14:51

 

 

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 !



#41 zahni

zahni

    Expert Member

  • 16.399 Beiträge

 

Geschrieben 19. November 2014 - 16:45

Warum soll ein Select * "ein Loop"  erzeugen bzw. was meinst  Du damit?

Eine Select *  liefert zunächst alle Spalten eine Abfrage, egal ob der Client alle Spalten braucht. Ob alle Zeilen abgerufen werden, hängt von der Where-Clausel ab und wie der Client auf das ResultSet zugreift (Stichwort z.B. Scrollable ResultSet).

Eine Abfrage ist  auch performanter, wenn nur  die Spalten abgefragt werden, die man wirklich benötigt.

@Sunny, wie sollen hier  SP's helfen?


Wen du nicht mit Können beeindrucken kannst, den verwirre mit Schwachsinn!


#42 Sunny61

Sunny61

    Expert Member

  • 22.107 Beiträge

 

Geschrieben 19. November 2014 - 17:56

@Sunny, wie sollen hier  SP's helfen?


Eine SP wird erstellt, der SQL-Server erstellt einen Ausführungsplan und optimiert die Ausführung der SP. Wenn ich allerdings jedesmal eine SELECT Abfrage an das Backend schicke, muß das jedesmal gemacht werden. Eine SP auf einem SQL Server ist jeder SELECT Abfrage aus einem FE vorzuziehen.

Natürlich ist das kein Allheilmittel, und wenn die SP auch mit SELECT * erstellt wird, kann es nicht viel besser werden, aber besser als ein SELECT * vom FE abgeschickt ist es IMHO allemal.
Gruppenrichtlinien: http://www.gruppenrichtlinien.de/

#43 zahni

zahni

    Expert Member

  • 16.399 Beiträge

 

Geschrieben 19. November 2014 - 22:31

Da kenne ich dann wohl den SQL-Server von MS zu wenig. Bei DB2 wird für dynamischen SQL ein sog. Package erstellt, dass den Ausführungsplan enthält. Das kann über eine längere Zeit wiederverwendet werden. Static SQL (was Du vermutlich meinst) kann als "Package" dauerhaft an die Datenbank gebunden werden, wobei so ein Package  auch eine dynamische Komponente hat.

Denn eine DB lebt ja und optimale Ausführungspläne können sich ändern (angepasste Statistiken, neue Indizes, etc). 

In freier Wildbahn habe ich noch keine Anwendung gesehen, die STATIC SQL wirklich  benutzen. Die Entwickler können meisten nur "Hibernate" bedienen.

Sicher wird die geben, keine Frage. Der DBA kann in dem Bereich eh wenig "von sich aus" machen.


Wen du nicht mit Können beeindrucken kannst, den verwirre mit Schwachsinn!


#44 Sunny61

Sunny61

    Expert Member

  • 22.107 Beiträge

 

Geschrieben 20. November 2014 - 07:54

Ich kenn den DB2 Server nicht. ;)

Ein weiteres Plus für die SPs ist die Sicherheit, ein Benutzer braucht nur noch Ausführungsberechtigungen auf die SP, der Rest läuft dann innerhalb der SP ab.
http://de.wikipedia....cherte_Prozedur D.h. ich brauch nicht 'rumhampern' mit irgendwelchen Berechtigungen auf Tabellen, Views. Einfach nur die SP ausführen lassen, fertig. Hier findet sich auch noch ein bisschen Erklärung dazu: http://technet.micro...(v=sql.80).aspx

Aber es gibt hier sicherlich Mitglieder die das besser und fundierter erklären können. ;)

Bearbeitet von Sunny61, 20. November 2014 - 07:56.

Gruppenrichtlinien: http://www.gruppenrichtlinien.de/

#45 NilsK

NilsK

    Expert Member

  • 12.347 Beiträge

 

Geschrieben 20. November 2014 - 09:12

Moin,

 

Naja dann sollte man aber keine mit 7200RPM kaufen. ;)

 

oh, in einem Notebook wäre das schnell. ;)

 

Gruß, Nils


Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!




Auch mit einem oder mehreren der folgenden Tags versehen: MS SQL