Determinar última fecha el uso de un servidor vinculado
-
16-10-2019 - |
Pregunta
Tenemos una tonelada de servidores vinculados en nuestro servidor de base de datos que nos gustaría que limpiar.
¿Es posible determinar la fecha de la última se utiliza un servidor vinculado? p.ej. la última vez que se realizó una consulta a través de él.
Solución
tendrá que configuración de SQL para supervisar para las consultas que utilizan el servidor vinculado. No hay DMV que se puede controlar fácilmente para su uso.
Otros consejos
podría ser capaz de mirar en el DMV sys.dm_exec_sql_text a mirar donde el nombre de servidor vinculado se utilizó por última vez en una instrucción SQL.
set transaction isolation level read uncommitted
SELECT
(SELECT TOP 1 SUBSTRING(s2.text,statement_start_offset / 2+1 ,
( (CASE WHEN statement_end_offset = -1
THEN (LEN(CONVERT(nvarchar(max),s2.text)) * 2)
ELSE statement_end_offset END) - statement_start_offset) / 2+1))
AS sql_statement,
last_execution_time
FROM sys.dm_exec_query_stats AS s1
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2
WHERE
s2.text like '%LinkedServerName%'
and last_execution_time > convert(datetime, '2011-01-01 00:00:00.000', 121)
ORDER BY
s1.sql_handle, s1.statement_start_offset, s1.statement_end_offset
Un montón de advertencias para esto:
- Si el servidor vinculado se utiliza a través de la vista / funcionar puede que no aparezca en su conjunto de resultados
- sólo se incluirá cualquier SQL que se encuentra en la caché del plan
- la caché del plan se borra al reiniciar
- SQL Server limpiará planes antiguos de la caché vez que se alcanzan sus límites de tamaño
Nota: Si modificarlo y hacerlo funcionar, por favor cambie la anterior SQL
La única manera que puede estar seguro de que no se está utilizando es para dejarla caer. ;). He supervisado servidores vinculados durante semanas y luego había alguien que se queja en cuestión de horas de dejarlo caer
Debería la escritura hacia fuera primero. Haz clic derecho en el Explorador de objetos y eligió la opción adecuada.