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'