Podejrzewałbym podsłuchiwanie parametrów.
Buforowany plan wykonania używany do połączenia Twojej aplikacji prawdopodobnie nie będzie używany przez połączenie SSMS z powodu innego set
opcje, dzięki czemu wygeneruje nowy inny plan.
Buforowane plany dla procedury składowanej można pobrać za pomocą poniższego zapytania. Następnie porównaj, aby sprawdzić, czy są różne (np. czy ten powolny wykonuje wyszukiwanie indeksu i wyszukiwanie zakładek w miejscu, w którym drugi wykonuje skanowanie?)
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'