Mehr als ein Jahr später möchte ich alle über meine Erfahrungen und das Endergebnis dieser Frage / dieses Themas informieren.
Ich fing an, Dinge selbst zu erschaffen. Anfangs folgte ich dem Artikel Sammeln und Speichern historischer SQL Server-Leistungsindikatordaten mit CMVs von Tim Ford, um etwas auf den neuesten Stand zu bringen und diese mit den Daten zu erweitern, die ich sammeln wollte. Daher führe ich einmal pro Tag mehrere gespeicherte Prozeduren auf jedem SQL Server aus, die bestimmte Informationen von DMVs sammeln und die Ergebnisse auf dem lokalen Server in einer Datenbank speichern. Dies umfasst Indexverwendung, fehlende Indizes, bestimmte Protokolleinträge wie Autogrow, Servereinstellungen, Anwendungsdatenbankeinstellungen, Fragmentierung, Jobausführung, Transaktionsprotokollinformationen, Dateiinformationen, Wartestatistiken und mehr.
Zusätzlich habe ich Brent Ozars Ergebnisse der regulären Ausführung von sp_blitz zu diesem Repository hinzugefügt, um zusätzliche wertvolle Hinweise zum Arbeiten, Verbessern und Berichten zu sammeln.
Alle Daten werden später von dort in einem dedizierten SQL-Überwachungsserver gesammelt. Auf diese Weise erstelle ich einen gebündelten Speicher für leistungsrelevante Informationen zu allen meinen Servern und verwende diesen als Grundlage für Untersuchungen und Berichte.
Dann habe ich Excel-Tabellen erstellt und Berichte mithilfe von Berichtsdiensten analysiert und interpretiert. Einige Beispiele:
Außerdem habe ich einige Leistungsindikatoren konfiguriert, die mit TYPEPERF überwacht werden, inspiriert vom Artikel " Sammeln von Leistungsdaten in einer SQL Server-Tabelle " von Fedor Georgiev.
Von meiner SQL Monitoring-Instanz aus löse ich typeperf aus, um eine konfigurierbare Anzahl von Samples mit einem konfigurierbaren Sample-Intervall auszuführen und zu sammeln und die Ergebnisse in meiner zentralen Überwachungsdatenbank zu speichern.
Dies ermöglicht es mir, langfristige Leistungswerte zu beobachten, Beispiel:
Nach einer Weile, in der Basisinformationen gesammelt wurden, stellte sich heraus, dass eine Menge Wartungsarbeiten erforderlich sind, um fehlgeschlagene Jobs zu untersuchen und Fehler zu beheben (z. B. für den Fall, dass eine Datenbank offline geschaltet wurde, einige) Skripte fehlgeschlagen), Einstellungen beibehalten, nachdem ein Server ersetzt wurde ...
Außerdem muss die Datenbank, in der alle Datensätze selbst erfasst werden, gewartet und die Leistung optimiert werden, sodass zusätzliche Arbeiten erforderlich sind, um die Daten nützlich zu halten ...
Was schließlich völlig fehlt, ist die Fähigkeit, Dinge zu betrachten, die live passieren. Im besten Fall kann ich feststellen, was möglicherweise am nächsten Tag nach dem Ausführen der Datensammler vor sich ging. Auch fehlen alle Details. Ich habe keinen Zugriff auf Deadlock-Diagramme. Ich kann keine Abfragepläne von Abfragen anzeigen, die in einem verdächtigen Zeitraum ausgeführt wurden.
All dies veranlasste mich, das Management zu belasten, um Geld für eine bevorzugte Lösung auszugeben, die ich nicht selbst erstellen kann.
Die endgültige Entscheidung war der Kauf von SentryOne, da es im Vergleich zu anderen überzeugend ist und viele Informationen liefert, die zur Identifizierung unserer Schwachstellen erforderlich sind.
Abschließend würde ich jedem raten, der nach Antworten auf ähnliche Fragen sucht, nicht zu versuchen, Dinge selbst zu erstellen, solange Sie keine kleine und grundsätzlich gesunde Umgebung haben. Wenn Sie einige Systeme und viele Probleme haben, sollten Sie sich sofort für eine professionelle Lösung entscheiden und die Unterstützung des Anbieters für Ihre Probleme nutzen, anstatt viel Zeit und Geld zu investieren, um etwas weniger Nützliches zu schaffen. Diese Route war jedoch immer noch sehr interessant und hat mich dazu gebracht, viel zu lernen, was ich nicht missen möchte.
Ich hoffe, Sie finden dies nützlich, wenn Sie auf diesen Fragenthread gestoßen sind.
BEARBEITEN 20. April 2017:
Brent Ozar hat kürzlich den folgenden Artikel auf Facebook veröffentlicht, der eine ähnliche Vorgehensweise des SQL Tiger-Teams darstellt: https://blogs.msdn.microsoft.com/sql_server_team/sql-server-performance-baselining -Berichte-entfesselt-für-Unternehmensüberwachung /