Jag skulle misstänka parametersnuffning.
Den cachade körningsplanen som används för din applikations anslutning kommer förmodligen inte att kunna användas av din SSMS-anslutning på grund av annan set
alternativ så att det genererar en ny annan plan.
Du kan hämta de cachade planerna för den lagrade proceduren genom att använda frågan nedan. Jämför sedan för att se om de är olika (t.ex. gör den långsamma indexsökningar och bokmärkessökningar på en plats där den andra gör en skanning?)
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'