Normalt er disse SET indstillingsforskelle, hvilket fører til forskellige planer. I Management Studio kører proceduren sandsynligvis med det samme indstillinger, som var på plads, da det blev oprettet.
Tag et kig på sys.dm_exec_sessions for din ASP.Net-applikation og til din SSMS-session. Jeg vil risikere at gætte på, at mindst én af dine SET
indstillingerne er anderledes. Dette kan bidrage til forskellige planer (i sidste ende tilskrives dette parametersniffing), og app-siden ender normalt dårligere.
Se disse andre spørgsmål for mange flere detaljer:
- Lagret procedure er langsom, når den kaldes fra internettet, hurtig fra Management Studio
- Proceduren timeout fra ADO.NET, men ikke i SSMS
- Forespørgslen timeout, når den udføres fra nettet, men superhurtig, når den udføres fra SSMS
- ADO . NET vs. SQL Server Management Studio - ADO klarer sig dårligere
- sql kører hurtigt i ssms langsom i asp.net
Og læs også Erland Sommarskogs artikel, Langsom i applikationen, hurtig i SSMS?