sql >> Base de Datos >  >> RDS >> Sqlserver

¿Por qué una consulta de base de datos solo va lenta en la aplicación?

Sospecharía el rastreo de parámetros.

El plan de ejecución almacenado en caché utilizado para la conexión de su aplicación probablemente no podrá ser utilizado por su conexión SSMS debido a diferentes set opciones por lo que generará un nuevo plan diferente.

Puede recuperar los planes almacenados en caché para el procedimiento almacenado utilizando la consulta a continuación. Luego compare para ver si son diferentes (por ejemplo, ¿el lento está haciendo búsquedas de índice y búsquedas de marcadores en un lugar donde el otro hace un escaneo?)

Use YourDatabase;

SELECT *
FROM sys.dm_exec_cached_plans 
CROSS APPLY sys.dm_exec_sql_text(plan_handle) 
CROSS APPLY sys.dm_exec_query_plan(plan_handle) 
cross APPLY sys.dm_exec_plan_attributes(plan_handle) AS epa
where sys.dm_exec_sql_text.OBJECTID=object_id('YourProcName') 
         and attribute='set_options'