Πώς μπορούμε να βρούμε πότε χρησιμοποιήθηκε τελευταία φορά μία βάση δεδομένων στον SQL Server

- Πώς να γυρίσουμε μία Oracle Database πίσω στον χρόνο με χρήση restore point σε περιβάλλον Data Guard - 28 Απρίλιος 2025
- Πώς μπορούμε να αυξήσουμε την απόδοση στο target Replicat του Oracle GoldenGate με παραλληλία - 19 Μάρτιος 2025
- Πώς φτιάχνουμε χρήστες σε βάσεις δεδομένων που ανήκουν σε Always On Availability Group του SQL Server - 10 Φεβρουάριος 2025
Στο άρθρο θα δούμε έναν εύκολο και γρήγορο τρόπό ώστε για να δούμε ποιές βάσεις δεδομένων χρησιμοποιούνται και ποιοι χρήστες είναι συνδεδεμένοι αυτή τη στιγμή σε αυτές.
Για να δούμε πότε έγινε τελευταία φορά access μία βάση δεδομένων στον SQL Server θα πρέπει να δούμε πότε προσπελάστηκε το πιο πρόσφατα προσπελάσημο index της.
Το query για να βρούμε αυτή τη πληροφορία είναι το παρακάτω:
SELECT d.name as DBname, last_user_seek = MAX(last_user_seek), last_user_scan = MAX(last_user_scan), last_user_lookup = MAX(last_user_lookup), last_user_update = MAX(last_user_update) FROM sys.databases AS d LEFT JOIN sys.dm_db_index_usage_stats AS i ON i.database_id=d.database_id WHERE d.database_id not in (1,2,3,4) GROUP BY d.name;

Ανάλογα με την στήλη μπορούμε να καταλάβουμε επίσης αν έγινε απλά ανάγνωση(seek,scan,lookup) ή ενημέρωση(update). Αν είναι όλες οι στήλες NULL σημαίνει ότι η βάση δεν έχει προσπελαστεί από τότε που έγινε τελευταία φορά restart το instance.
*Στο παραπάνω θα πρέπει να δώσουμε ιδιαίτερη προσοχή καθώς κάθε φορά που γίνεται restart το instance του SQL Server όλες οι τιμές γίνονται NULL καθώς διαγράφεται η πληροφορία
Bonus πώς θα δούμε ποιοι χρήστες είναι ενεργοί αυτή τη στιγμή
Για να δούμε ποιοι χρήστες είναι ενεργοί στις βάσεις δεδομένων αυτή την στιγμή μαζί με το όνομα του υπολογιστή και το όνομα του πρόγραμματος που χρησιμοποιούν, τρέχουμε το παρακάτω query:
select DB_NAME(dbid) as DBname,count(dbid) as Connections,loginame,program_name,hostname from sys.sysprocesses where dbid > 4 --and loginame not like 'NT Service%' --and loginame != 'sa' group by dbid,loginame,program_name,hostname order by dbid,loginame;

Very valuable information