Alcune opzioni:
-
Cosa significa il profiler o
SET STATISTICS xx ON
dire? C'è semplicemente carenza di risorse, diciamo CPU -
Il motore decide che le statistiche non sono aggiornate. Le tabelle cambiano del 10% di variazione del conteggio delle righe (regola pratica). Per testare:
SELECT name AS stats_name, STATS_DATE(object_id, stats_id) AS statistics_update_date FROM sys.stats WHERE object_id IN (OBJECT_ID('relevanttable1'), OBJECT_ID('relevanttable2'))
-
Cos'altro sta succedendo sul server? esempio:ricostruzione dell'indice:non bloccante, solo ad alta intensità di risorse.
Di solito suggerirei lo sniffing dei parametri, ma dici che i parametri sono gli stessi per ogni chiamata. Mi aspetto anche che accada più spesso.