it-swarm-eu.dev

Kdy byla data naposledy vložena / aktualizována / smazána v tabulce?

Našel jsem řešení this , ale tyto informace jsou ztraceny pokaždé, když je služba SQL Server restartována, nebo jinými slovy, není perzistentní.

Existuje další způsob, jak zjistit, kdy byla tabulka naposledy aktualizována, i když byl server po této skutečnosti vypnut?

7
ivanmp

Pokud jsou data v jiném řešení pro vás přijatelná, můžete jednoduše převrátit svůj vlastní sběr dat, aby zůstal trvalý. Například vytvořte tabulku pro uložení object_id a poslední hledání/skenování/aktualizaci. Každých n minut pořídíte snímek DMV. Poté zkontrolujte maximum v snímku a pokud je větší než maximum v souhrnu, aktualizujte souhrn. Snímky si můžete ponechat jako historii nebo je můžete časem vyčistit, jakmile se sloučíte.

6
Aaron Bertrand

Pokud máte přístup k vydání SQL Server Enterprise, podívejte se na Změna sledování . To je ale docela komplexní řešení. Nakonec může být jednodušší přidat sloupec LastUpdated, jak již bylo navrženo.

3
Dean Goodman

Chtěl bych také poukázat na to, že se budete chtít vylepšit tím, že vytvoříte tabulku protokolů (která sleduje záznamy o vložení/odstranění/aktualizaci) nebo přidáte do vašich záznamů příznaky s daty (což by stálo další místo na disku na jeden záznam).

SQL Server to ve výchozím nastavení neudržuje, protože by to bylo drahé pro vysoké transakční databáze

3
Jakub

Může vám to pomoci:

SELECT OBJECT_NAME(OBJECT_ID) AS DatabaseName, 
    last_user_update, *
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID( 'Database Name');
0
Aslam Khan