it-swarm.asia

Kapan data terakhir dimasukkan / diperbarui / dihapus dalam sebuah tabel?

Saya telah menemukan ini solusi, tetapi informasi ini hilang setiap kali layanan SQL Server dihidupkan ulang, atau dengan kata lain, itu tidak persisten.

Apakah ada cara lain saya bisa mengetahui kapan tabel terakhir diperbarui bahkan jika server telah dimatikan setelah fakta?

7
ivanmp

Jika data dalam solusi lain dapat diterima oleh Anda, maka Anda bisa menggulung pengumpulan data Anda sendiri untuk membuatnya tetap ada. Misalnya, buat tabel untuk menyimpan object_id dan pencarian/pemindaian/pembaruan terakhir. Setiap menit, ambil snapshot dari DMV. Kemudian periksa maks dalam snapshot, dan jika lebih besar dari maks dalam rollup, perbarui rollup. Anda dapat menyimpan foto sebagai sejarah atau Anda dapat membersihkannya dari waktu ke waktu setelah Anda bergabung.

6
Aaron Bertrand

Jika Anda memiliki akses ke edisi SQL Server Enterprise, periksa bah Pelacakan . Namun, itu solusi yang cukup rumit. Pada akhirnya mungkin lebih mudah untuk menambahkan kolom LastUpdated, seperti yang sudah disarankan.

3
Dean Goodman

Saya juga akan menunjukkan bahwa Anda akan mendapatkan jarak tempuh yang lebih baik dengan membuat tabel log (yang melacak sisipan/penghapusan/pembaruan) atau menambahkan bendera dengan tanggal ke catatan Anda (yang akan memerlukan beberapa ruang disk tambahan per catatan).

Either way SQL Server tidak melacak ini secara default karena akan mahal untuk DB transaksi tinggi

3
Jakub

Ini mungkin bermanfaat bagi Anda:

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