Di solito si tratta di differenze di impostazione SET, che portano a piani diversi. In Management Studio la procedura è probabilmente in esecuzione con lo stesso impostazioni come erano al momento della creazione.
Dai un'occhiata a sys.dm_exec_sessions per la tua applicazione ASP.Net e per la tua sessione SSMS. Azzarderò a indovinare che almeno uno dei tuoi SET
le impostazioni sono diverse. Questo può contribuire a piani diversi (alla fine questo viene attribuito allo sniffing dei parametri) e il lato app di solito finisce peggio.
Vedi queste altre domande per molti più dettagli:
- Stored procedure lenta quando viene chiamata dal web, veloce da Management Studio
- La procedura scade da ADO.NET ma non in SSMS
- La query scade se eseguita dal Web, ma velocissima se eseguita da SSMS
- ADO . NET e SQL Server Management Studio:ADO ha prestazioni peggiori
- sql funziona velocemente in ssms lento in asp.net
E leggi anche l'articolo di Erland Sommarskog, Lento nell'applicazione, veloce negli SSMS?