Ich verwende SQL Server 2008 Enterprise Edition und möchte die folgenden Leistungsmetriken überwachen, z. B. über dynamische Verwaltungssichten (aus SQL heraus):
Durchschnitt / Maximum Lesen / Schreiben E / A Wartet in ms pro Datenbankdatei für gleitendes Zeitfenster.
Das sind: 4 Zahlen pro Datenbankdatei: avg read wait, max lesen wait, avg write wait, max schreiben wait. Alles in ms und alles für ein vernünftiges (oder noch besser konfigurierbares) Schiebezeitfenster.
Wie kann ich das tun?
PS: Ich habe die Berechtigung VIEW SERVER STATE und kann sys.dm_os_performance_counters
, sys.database_files
, sys.dm_io_virtual_file_stats
etc. usw.
PS2: Mindestens ein Tool (Quest Spotlight 7 für SQL Server) kann Max I / O Wait in ms pro Datenbankdatei bereitstellen. Also muss es einen Weg geben ..
Unten ist die Abfrage, die der Activie Monitor von SSMS verwendet. Sie bezeichnen das Feld io_stall als Gesamtwartezeit. Sie könnten die Felder fs.io_stall_read_ms
und fs.io_stall_write_ms
hinzufügen, um die spezifischen Zahlen zum Lesen / Schreiben zu erhalten.
Diese Abfrage gibt Ihnen nur die Gesamtsummen. Sie müssten es in einem bestimmten Intervall ausführen und die Ergebnisse in einer temporären Tabelle mit einem Zeitstempel aufzeichnen. Sie könnten dann diese Tabelle abfragen, um Ihr min / max / avg nach Bedarf zu erhalten. Das gleitende Zeitfenster wäre nur eine Funktion davon, wie viele Daten Sie in dieser Tabelle aufbewahren und welchen Zeitraum Sie abfragen.
Das Problem, das Sie haben werden, ist, dass SQL nicht unbedingt die Detailebene verfolgt, die Sie pro Datei erhalten möchten. Wahrscheinlich müssen Sie auch den Leistungsmonitor verwenden. Sie müssen einen Kombinationsansatz verwenden, bei dem Sie im Verlauf der Zeit beide Leistungsmonitore nach Einzelheiten zu E / A auf der Festplatte durchsuchen. Sowie die oben genannten SQL-Monitoring-Techniken, um ein vollständigeres vollständiges Bild zu erhalten. Ich hoffe, das hilft.
Sie können ein paar Skripts verwenden, um die Messwerte abzurufen. Ich habe den in SQL Server 8 integrierten Datensammlungs- / Datenerfassungsserver aktiviert. Er sammelt die Messwerte von mehreren Instanzen und speichert sie auf einem mssql-Server, den Sie als Collector bezeichnen. Die für jede Instanz bereitgestellten Berichte sind für die meisten Zwecke geeignet. Ich bin mir sicher, dass es Tools von Drittanbietern gibt, die über die Fähigkeiten des Datensammlers hinausgehen, da nur Berichte zur Performance / Festplattennutzung / und Abfragestatistiken ohne Leistungshinweise erstellt werden.
Damit erhalten Sie eine Datendateiwachstumsprognose und eine Growth Event-Zusammenfassung für beide Logs und Datendateien. Ich weiß jedoch nicht, ob Sie die Metriken erhalten, nach denen Sie pro Datei oder Dateigruppe suchen:)
HINWEIS: Wenn Sie das Datensammlungs-Warehouse verwenden, sollten Sie in regelmäßigen Abständen Indizes neu erstellen, wenn die Größe zunimmt. Es sammelt ca. 20 MB / Tag Daten in meinem Senario.
Weitere Informationen zum Sammeln pro Datei finden Sie unter Ссылка
Tags und Links sql sql-server sql-server-2008