Ich habe diese Lösung gefunden, aber diese Informationen gehen jedes Mal verloren, wenn der SQL Server-Dienst neu gestartet wird, oder mit anderen Worten, sie sind nicht dauerhaft.
Gibt es eine andere Möglichkeit, herauszufinden, wann eine Tabelle zuletzt aktualisiert wurde, auch wenn der Server nachträglich heruntergefahren wurde?
sql-server
ivanmp
quelle
quelle
Antworten:
Wenn die Daten in der anderen Lösung für Sie akzeptabel sind, können Sie einfach Ihre eigene Datenerfassung rollen, damit sie bestehen bleibt. Erstellen Sie beispielsweise eine Tabelle zum Speichern von object_id und zum letzten Suchen / Scannen / Aktualisieren. Machen Sie alle n Minuten einen Schnappschuss der DMV. Überprüfen Sie dann das Maximum im Snapshot. Wenn es größer als das Maximum im Rollup ist, aktualisieren Sie das Rollup. Sie können die Schnappschüsse als Verlauf behalten oder sie im Laufe der Zeit bereinigen, sobald Sie sich zusammengeschlossen haben.
quelle
Wenn Sie Zugriff auf SQL Server Enterprise Edition haben, lesen Sie Änderungsverfolgung . Das ist jedoch eine ziemlich komplexe Lösung. Letztendlich ist es möglicherweise einfacher, eine LastUpdated-Spalte hinzuzufügen, wie bereits vorgeschlagen.
quelle
Ich möchte auch darauf hinweisen, dass Sie eine bessere Kilometerleistung erzielen, indem Sie entweder eine Protokolltabelle erstellen (die Einfügungen / Löschungen / Aktualisierungen protokolliert) oder Flags mit Datumsangaben zu Ihren Datensätzen hinzufügen (was zusätzlichen Speicherplatz pro Datensatz kosten würde).
In beiden Fällen verfolgt SQL Server dies standardmäßig nicht, da dies für DBs mit hohen Transaktionen teuer werden würde
quelle
Dies kann für Sie hilfreich sein:
quelle
this information is lost everytime the SQL Server service is restarted
- Wie geht diese Antwort auf dieses Problem ein?