Änderungsverfolgung & Lizenzberater

Zwei Funktionen, die über die übliche Berechtigung VIEW SERVER STATE hinaus ein Wort zur Einrichtung brauchen. Beide sind standardmäßig aktiv und beide verhalten sich gutmütig: Fehlt eine Berechtigung, wird der betroffene Teil übersprungen, der Rest arbeitet weiter.


Änderungsverfolgung (/changes)

Führt eine dauerhafte Chronik dessen, was sich auf jeder überwachten Instanz geändert hat: DDL, sp_configure, globale Ablaufverfolgungsflags, Datenbankoptionen, Anmeldungen und Rollenmitgliedschaften.

Warum das Abholintervall so wichtig ist

Quelle für DDL- und Sicherheitsereignisse ist die Standard-Ablaufverfolgung von SQL Server. Sie rolliert nach fünf Dateien à 20 MB, und die ältesten Daten sind dann endgültig weg. Auf einer ausgelasteten Instanz kann das weniger als eine Stunde sein.

Das Abholintervall ist damit die eigentliche Aufbewahrungssteuerung. Was die Anwendung vor dem Rollieren nicht eingesammelt hat, existiert nicht:

"ChangeTracking": {
  "Enabled": true,
  "IntervalMinutes": 10,
  "RetentionDays": 180
}

Docker beziehungsweise Umgebungsvariablen:

ChangeTracking__IntervalMinutes=10
ChangeTracking__RetentionDays=180

Zeigt /changes auf einer schreibintensiven Instanz Lücken, senken Sie zuerst IntervalMinutes, bevor Sie irgendetwas anderes versuchen.

Berechtigungen

Fähigkeit Benötigte Berechtigung Ohne sie
DDL- und Sicherheitsereignisse ALTER TRACE Keine Schema- und Sicherheitszeilen; der Konfigurationsvergleich läuft weiter
Konfiguration, Datenbankoptionen, Lebenszyklus von Datenbanken VIEW SERVER STATE Es wird nichts erfasst
Globale Ablaufverfolgungsflags sysadmin Zeilen zu Ablaufverfolgungsflags werden stillschweigend übersprungen
GRANT ALTER TRACE TO [monitoring_login];

Die Standard-Ablaufverfolgung muss außerdem eingeschaltet sein — das ist sie im Auslieferungszustand, doch Installationsroutinen und Härtungsvorgaben schalten sie mitunter ab:

SELECT * FROM sys.traces WHERE is_default = 1;   -- eine Zeile wird erwartet

-- Falls leer:
EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'default trace enabled', 1;   RECONFIGURE;

Steht keine Standard-Ablaufverfolgung zur Verfügung (abgeschaltet, oder Azure SQL Database, das keine besitzt), weist die Änderungsseite einmal je Instanz darauf hin und fällt auf den Konfigurationsvergleich zurück. Schema- und Sicherheitsänderungen sind dann nicht verfügbar; die übrigen Kategorien bleiben unberührt.

Der erste Lauf bleibt absichtlich still

Der erste Abholvorgang gegen eine Instanz erfasst ausschließlich den Ausgangsstand — keine Ereignisse. Ohne das würde das Einschalten der Überwachung hundert „geänderte“ Zeilen für Einstellungen erzeugen, die lediglich noch nie gesehen worden waren, und obendrein nachtragen, was zufällig noch im Ablaufverfolgungspuffer lag. Ab dem zweiten Durchlauf werden echte Änderungen gemeldet.

Eine Folge, die man kennen sollte: Löschen Sie Zeilen aus ServerConfigBaselines, behandelt der nächste Durchlauf diese Instanz als neu und bleibt einen Zyklus lang still.

Überlagerung in den Diagrammen

Unter Performance → History gibt es einen Schalter Änderungen anzeigen, der erfasste Änderungen als senkrechte Markierungen über jedes Diagramm legt. Gezeichnet werden nur Änderungen der Stufen Notable und Critical — Info-Rauschen würde die Diagramme zumalen. Die Auswahl wird je Browser gemerkt.

Aufbewahrung

ChangeTracking:RetentionDays (Standard 180) wird täglich vom Aufräumdienst durchgesehen. ServerConfigBaselines wird bewusst nicht aufgeräumt: Das ist aktueller Zustand, keine Historie, und ein Löschen würde das oben beschriebene stille Verhalten beim ersten Lauf auslösen.


Lizenzoptimierung (/reports/license)

Zeigt, ob eine Instanz, die unter Enterprise läuft, mit Standard auskäme — und was das wert wäre.

Eigene Preise hinterlegen

Die Anwendung liefert keine Preisliste von Microsoft mit, die Preise stehen auf 0. Ohne Preise weist der Bericht Kerne und 2-Kern-Pakete aus; tragen Sie Ihre Konditionen ein, nennt er Beträge:

"LicenseCostSettings": {
  "Currency": "EUR",
  "EnterpriseCorePackAnnualPrice": 0,
  "StandardCorePackAnnualPrice": 0,
  "UtilisationWindowDays": 30,
  "Enabled": true,
  "IntervalHours": 24,
  "RetentionDays": 400
}

Verwenden Sie Ihre tatsächlichen Vertragskonditionen (EA, SPLA, Open Value), nicht die Listenpreise. Beide Angaben sind der jährliche Preis eines 2-Kern-Pakets.

Berechtigungen

VIEW SERVER STATE sowie Lesezugriff (CONNECT / VIEW DATABASE STATE) auf jede zu prüfende Datenbank. Datenbanken, die die Anmeldung nicht erreicht, werden übersprungen und in der Bewertung mitgezählt — der Lauf scheitert nicht, aber das Urteil ist unvollständig. Behandeln Sie eine Zahl übersprungener Datenbanken über null daher als „noch nicht belastbar“.

Das Urteil lesen

Urteil Bedeutung
Auf Standard herabstufbar Auf dieser Version wird keine Enterprise-Funktion genutzt, die Hardware liegt innerhalb von 24 Kernen / 128 GB
Enterprise erforderlich Mindestens eine Funktion verhindert Standard tatsächlich — die Liste der Blocker nennt die Datenbank
Hardware übersteigt die Standard-Grenze Keine Funktion blockiert, aber ein Herabstufen hieße, die Maschine zu verkleinern
Keine Änderung nötig Kein Enterprise, oder Azure PaaS (überhaupt nicht kernbasiert lizenziert)
Nicht bewertbar Die Bewertung ist gescheitert — der Fehler steht in der Zeile

Funktionen, die die DMV gemeldet hat, die auf Ihrer Version aber nicht blockieren, werden gesondert unter „gemeldete Funktionen, die keine Blocker sind“ aufgeführt. Genau darauf kommt es an: SQL Server 2016 SP1 hat Komprimierung, Partitionierung, Columnstore und In-Memory OLTP nach Standard geholt, 2019 tat dasselbe für TDE — sys.dm_db_persisted_sku_features nennt sie trotzdem weiterhin. Werkzeuge, die diesen Unterschied übergehen, raten Ihnen, für ein Enterprise weiterzuzahlen, das Sie nicht brauchen.

Kandidaten für eine Konsolidierung

Instanzen, deren Spitzenlast auf der CPU über das Auswertungsfenster unter 25 % blieb. Bewusst die Spitze und nicht der Durchschnitt — der Monatsabschluss ist oft der einzige Grund, warum eine Maschine so groß ist, und ein Durchschnitt verdeckt ihn.

Dieser Abschnitt stützt sich auf gesammelte Historie; eine frisch hinzugefügte Instanz hat daher so lange kein Konsolidierungsurteil, bis genügend Messpunkte vorliegen (mindestens 100).

Was der Bericht nicht sehen kann

Enterprise-Fähigkeiten, die nur zur Laufzeit genutzt werden, hinterlassen keine Spur in der Datenbank und sind hier folglich unsichtbar — insbesondere Online-Indexneuerstellungen und parallele Indexoperationen. Prüfen Sie Ihre Wartungsaufträge, bevor Sie herabstufen.

Dieser Bericht ist technische Entscheidungshilfe, keine Lizenzberatung. Er kennt weder Ihren Vertrag noch Software Assurance oder Virtualisierungsrechte. Stimmen Sie jede Herabstufung mit Ihrem Lizenzpartner ab.