Bonjour,
Une dégradation aléatoire de temps de réponse est communément à deux raisons:
Concurrence d'accès
Calcul des statistiques embarqués dans l'éxécution d'une fonction.
Pour identifier la problème, vous pouvez faire appel au suivi des attentes en base:
Réinitialisez les compteurs d'attente.
dbcc sqlperf("sys.dm_os_wait_stats" , CLEAR)
Exécutez plusieurs fois la requête incriminée (ou attendez simplement quelques minutes)
Regardez quelles sont les attentes les plus importantes.
1 2 3 4
| select wait_type,wait_time_ms
from sys.dm_os_wait_stats
where wait_type NOT LIKE '%CLR%' and wait_type not like '%SLEEP%' and wait_type not like 'XE%' and wait_type NOT IN ('WAITFOR','REQUEST_FOR_DEADLOCK_SEARCH','HADR_FILESTREAM_IOMGR_IOCOMPLETION','CHECKPOINT_QUEUE','DIRTY_PAGE_POLL','LOGMGR_QUEUE','BROKER_TO_FLUSH','BROKER_TASK_STOP','SOS_SCHEDULER_YIELD')
and wait_time_ms >0 |
La ou les principales attentes vous donneront la raison de votre problème de performance. Vous pourrez ensuite rechercher sur le Net (ou ici, bien entendu) les informations correspondant aux attentes remontées.
Cordialement.
Benjamin
Partager