En SQL Server 2005, ¿puede determinar fácilmente la última vez que alguien consultó una base de datos?¿Cómo se encuentra la última vez que se accedió a una base de datos?
Respuesta
No es fácil, pero si activa la función de registro de SQL Server, puede examinar los registros utilizando el software para descubrir cuándo fue la última consulta y de qué se trataba.
-Adam
Es necesario tener auditoría o una traza de SQL Server establecido de antemano.
SQL Server puede registrar la información del evento para los intentos de inicio de sesión y puede verlo al revisar el registro de errores. Al activar el nivel de auditoría de SQL Server.
siga estos pasos para habilitar la auditoría de todas las conexiones/exitosos con el Administrador de Empresa en SQL Server:
expandir un grupo de servidores. Haga clic con el botón derecho en un servidor y luego haga clic en Propiedades. En la pestaña Seguridad, debajo del Nivel de auditoría, haga clic en todo/éxito, etc. (se requiere la opción ).
Debe detener y reiniciar el servidor para que esta configuración surta efecto
SELECT
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.dm_db_index_usage_stats
WHERE
[database_id] = DB_ID()
Una advertencia con este método es que la información en el DMV se borrará y anula cada vez que reinicie SQL Server.
Encontré esto en MySQLtips - funcionó para mí.
select d.name, x1 =
(select X1= max(bb.xx)
from (
select xx = max(last_user_seek)
where max(last_user_seek) is not null
union all
select xx = max(last_user_scan)
where max(last_user_scan) is not null
union all
select xx = max(last_user_lookup)
where max(last_user_lookup) is not null
union all
select xx = max(last_user_update)
where max(last_user_update) is not null) bb)
FROM master.dbo.sysdatabases d
left outer join
sys.dm_db_index_usage_stats s
on d.dbid= s.database_id
group by d.name
Para ampliar la respuesta de James Allen:
SELECT d.name,
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.dm_db_index_usage_stats AS i
JOIN sys.databases AS d ON i.database_id=d.database_id
GROUP BY d.name
Utilice esta versión modificada, si usted no quiere resultados por contexto base de datos y desea incluir el nombre de la base de datos al inicio del conjunto de resultados.
También puede hacerlo sin JOIN: SELECT DB_NAME (database_id)), 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.dm_db_index_usage_stats GROUP BY database_id PEDIDO POR DB_NAME (database_id) –
similares a los métodos anteriores, pero para obtener resultados simplemente como un único valor para un identificador de base de datos en particular (en este ejemplo es 6
)
select max(LastAccess)
from (
SELECT last_user_seek as LastAccess FROM sys.dm_db_index_usage_stats WHERE last_user_seek is not null and [database_id]=6
union
SELECT last_user_lookup as LastAccess FROM sys.dm_db_index_usage_stats WHERE last_user_seek is not null and [database_id]=6
union
SELECT last_user_seek as LastAccess FROM sys.dm_db_index_usage_stats WHERE last_user_seek is not null and [database_id]=6
union
SELECT last_user_update as LastAccess FROM sys.dm_db_index_usage_stats WHERE last_user_seek is not null and [database_id]=6
) UserAccess
- 1. ¿Cómo encuentro la última vez que se actualizó una base de datos PostgreSQL?
- 2. ¿Cómo puedo obtener la hora en que Google bot accedió por última vez a la página?
- 3. Cómo determinar, al iniciar, si la aplicación se bloqueó la última vez que se cerró?
- 4. La base de datos de Android se recrea cada vez que se inicia la aplicación
- 5. La última vez que se ejecutó un procedimiento almacenado
- 6. ¿Cómo implementaría una característica de "última vez que se viera" para los usuarios?
- 7. ¿La aplicación de detección se colgó durante la carga/la última vez que se ejecutó?
- 8. base de datos de cakephp no se encuentra
- 9. Android check cuando la tabla se actualizó por última vez
- 10. .net DateTime MaxValue es diferente una vez que se almacena en la base de datos
- 11. Agregar una nueva tabla a la base de datos después de que la aplicación se haya ejecutado una vez
- 12. Cómo saber cuándo se actualizó una tabla de Oracle la última vez
- 13. svn: ¿Cómo determino la última vez que se modificó una determinada línea?
- 14. Dentro de un ciclo while, ¿se garantiza que la última declaración separada por comas se ejecutará la última vez?
- 15. ¿Cómo saber si actualmente se encuentra en la última fila de una tabla HTML?
- 16. ¿Cuál es la mejor manera de implementar una función de "última vez que se ve" en una aplicación web django?
- 17. Comprobar cuándo se modificó por última vez la contraseña
- 18. Un método que se ejecuta cada vez que se accede a una propiedad de clase (get o set)?
- 19. Cómo forzar a hibernar a liberar memoria una vez que se cierra la sesión?
- 20. Diccionario de Python con memoria de teclas a las que se accedió?
- 21. ¿Cómo puedo verificar la última vez que se ejecutaron las estadísticas en Oracle sin utilizar OEM?
- 22. ¿Dónde se encuentra la base de datos local html5 en una máquina cliente?
- 23. Variable en Bash Script que mantiene su valor desde la última vez que se ejecuta
- 24. ¿Cómo obtengo la hora en que se modificó por última vez un archivo en Python?
- 25. ¿dónde se encuentra mi base de datos cuando se usa mysql en rieles?
- 26. ¿Cuánto tiempo hace desde la última vez que se abrió la aplicación en iOS?
- 27. JPA encuentra la última entrada
- 28. ¿Cómo puedo determinar cuándo se modificó por última vez una tabla InnoDB?
- 29. ¿Cómo se usa la inducción para conectarse a una base de datos SQLite local?
- 30. OpenCV Orb no encuentra coincidencias una vez que se introducen invarianzas de rotación/escala
Esta es pregunta muy similar a la suya: http: // stackoverflow. com/questions/525558/how-can-a-tables-last-modified-date-be-returned-in-sql-server-2005/525587 # 525587 – MicSim