{"id":4289,"date":"2010-02-22T19:06:26","date_gmt":"2010-02-22T18:06:26","guid":{"rendered":"http:\/\/www.glorf.it\/blog\/?p=4289"},"modified":"2010-02-23T07:26:40","modified_gmt":"2010-02-23T06:26:40","slug":"performance-troubleshooting-mit-sql-server","status":"publish","type":"post","link":"http:\/\/www.glorf.it\/blog\/2010\/02\/22\/sql-talk\/sql-server\/performance-troubleshooting-mit-sql-server","title":{"rendered":"Performance Troubleshooting mit SQL Server"},"content":{"rendered":"<p>Da gerade in letzter Zeit &#246;fters Leute wegen verschiedener Performanceprobleme auf mich zu kommen, habe ich hier mal ein paar gute Links zu dem Thema gesammelt. Sie gehen von der Situation aus, dass das Kind schon in den Brunnen gefallen ist. Die Performance ist schlecht und nun geht es darum rauszufinden warum. <\/p>\n<p>Eine Warnung muss ich allerdings vorwegschicken: Oft genug ist der SQL Server gar nicht der Flaschenhals. Bei einer k&#252;rzlichen Performance-Analyse stellte sich heraus, dass die Anwendung &#252;ber einen bestimmten Mechanismus erreichte, das ein fachliches Objekt nur von einem Anwender gleichzeitig bearbeitet werden konnte. Das war &#252;ber eine zentrale Sperrdatei am Server gel&#246;st. Aber das gleiche Ergebnis w&#252;rde es auch bringen, wenn diese Anwendungssynchronisierung &#252;ber eine Tabelle gemacht w&#252;rde. Ab einer bestimmten Anzahl an Benutzern wurde das System einfach langsam, weil hier die Anwendungssperren zu schlugen. In einem anderen Fall war das Performance-Bottleneck die Anwendung am Arbeitsplatz, hier dauerte das Aufbauen der Bildschirmelemente furchtbar lange, weil in den Oberfl&#228;chenelementen immer alle Daten angezeigt wurden, z.B. die Liste der aller Kunden in einer Drop-Down-Box. Das wird nun man langsam, wenn das recht viele sind. F&#252;r solche Mengen war die Anwendung offensichtlich nicht ausgelegt. Um fest zustellen wo die Performance bleibt, hilft nur eine Analyse des Netzverkehrs. Dann sieht man genau auf welcher Seite des Netzes die Probleme sind, oder ob es gar das Netz selber ist&#8230;<\/p>\n<p>Falls man sich dann sicher ist, das die Performance bei SQL-Server bleibt, dann empfehle ich als Einstieg das <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/dd672789.aspx\">TechNet-Dokument<\/a> &quot;<a href=\"http:\/\/download.microsoft.com\/download\/D\/B\/D\/DBDE7972-1EB9-470A-BA18-58849DB3EB3B\/TShootPerfProbs2008.docx\">Troubleshooting Performance Problems in SQL Server 2008<\/a>&quot; von <a href=\"http:\/\/blogs.msdn.com\/sqlserverstorageengine\/\">Sunil Agarwal<\/a> und anderen. Inzwischen ist das Dokument schon fast ein Jahr erh&#228;ltlich, aber immer noch aktuell.<\/p>\n<p>Als Vertiefung empfehle ich das Buch &quot;<a href=\"http:\/\/www.amazon.de\/Server-Performance-Tuning-Distilled-Experts\/dp\/1430219025\">SQL Server 2008 Query Performance Tuning Distilled<\/a>&quot; von Grant Fritchey (aka <a href=\"http:\/\/scarydba.wordpress.com\/\">ScaryDba<\/a>) und Sajal Dam. Bei Google gibt es eine <a href=\"http:\/\/books.google.de\/books?id=CD6Y4wAdQpwC&#038;lpg=PP1&#038;pg=PP1#v=onepage&#038;q=&#038;f=false\">Vorschau<\/a>. Das Buch ist aus meiner Sicht g&#252;nstig f&#252;r den gebotenen Stoff. Wenn es darum ginge schlechte Performance proaktiv zu vermeiden, dann w&#252;rde ich eher die B&#252;cher von <a href=\"http:\/\/www.glorf.it\/blog\/2009\/07\/23\/sql-talk\/t-sql-buecher-von-itzik-ben-gan-zum-sql-server-2008\">Itzik Ben-Gan<\/a> empfehlen.<\/p>\n<p>Zuletzt empfehle ich auch immer gerne die Unterlagen von TechNet-Vortr&#228;gen. <a href=\"http:\/\/blogs.technet.com\/sqlteamgermany\/archive\/2009\/10\/21\/technet-veranstaltung-sql-server-performance-tuning.aspx\">Franz Robeller und Oliver Goletz<\/a> stellen auch Ihre Folien und Beispiele der TechNet-Vortr&#228;ge vom November 2009 bereit. Hier der <a href=\"http:\/\/cid-ad321dd74941ab0c.skydrive.live.com\/self.aspx\/Technet%20Perf%20Tuning\/SQL-2008-TroubleShooting-PerformanceTuning%20-%20TechNet.zip\">Download-Link<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Da gerade in letzter Zeit &#246;fters Leute wegen verschiedener Performanceprobleme auf mich zu kommen, habe ich hier mal ein paar gute Links zu dem Thema gesammelt. Sie gehen von der Situation aus, dass das Kind schon in den Brunnen gefallen ist. Die Performance ist schlecht und nun geht es darum rauszufinden warum. Eine Warnung muss [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[16],"tags":[930,929,689],"_links":{"self":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/4289"}],"collection":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/comments?post=4289"}],"version-history":[{"count":12,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/4289\/revisions"}],"predecessor-version":[{"id":4382,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/4289\/revisions\/4382"}],"wp:attachment":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/media?parent=4289"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/categories?post=4289"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/tags?post=4289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}