Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Stored procedure lenta quando chiamata dal web, veloce da Management Studio

Ho avuto un problema simile in passato, quindi sono ansioso di vedere una soluzione a questa domanda. Il commento di Aaron Bertrand sull'OP ha portato a La query scade se eseguita dal Web, ma super veloce se eseguita da SSMS , e sebbene la domanda non sia un duplicato, la risposta potrebbe benissimo applicarsi alla tua situazione.

In sostanza, sembra che SQL Server possa avere un piano di esecuzione memorizzato nella cache danneggiato. Stai colpendo il piano sbagliato con il tuo server web, ma SSMS atterra su un piano diverso poiché c'è un'impostazione diversa sul flag ARITHABORT (che altrimenti non avrebbe alcun impatto sulla tua particolare query/proc memorizzato).

Vedi ADO.NET che chiama la stored procedure T-SQL provoca un'eccezione SqlTimeoutException per un altro esempio, con una spiegazione e una risoluzione più complete.