Vanligtvis är dessa SET-inställningsskillnader, vilket leder till olika planer. I Management Studio körs förmodligen proceduren med samma inställningar som var på plats när den skapades.
Ta en titt på sys.dm_exec_sessions för din ASP.Net-applikation och för din SSMS-session. Jag kommer att riskera en gissning att minst en av dina SET
inställningarna är annorlunda. Detta kan bidra till olika planer (i slutändan tillskrivs detta parametersniffning) och appsidan hamnar vanligtvis sämre.
Se dessa andra frågor för mycket mer information:
- Lagrad procedur långsam när den anropas från webben, snabb från Management Studio
- Proceduren timeout från ADO.NET men inte i SSMS
- Frågan tar timeout när den körs från webben, men supersnabb när den körs från SSMS
- ADO . NET vs. SQL Server Management Studio - ADO presterar sämre
- sql körs snabbt in ssms långsam i asp.net
Och läs även Erland Sommarskogs artikel, Långsamt i applikationen, snabbt i SSMS?