ne pas cacher une query ? [SQLSERVER] - SQL/NoSQL - Programmation
Marsh Posté le 02-11-2010 à 15:06:08
Ca dépend de ce que tu veux ne pas mettre en cache ... si c'est le plan d’exécution que tu ne veux pas cacher, tu peux mettre ton query dans une SP en forçant le WITH RECOMPILE et le plan d'exécution sera recalculé à chaque fois et si juste un problème au niveau du cache des données, voit si tu peux passer un DBCC FREEPROCCACHE, sinon je vois pas...
Marsh Posté le 03-11-2010 à 10:56:16
Utilises ca pour regarder les performances d'une query:
Code :
|
Dans la zone message tu auras des statistiques sur l'execution de ta query.
Tu pourras voir le temps cpu (en ms) et les differents read/write.
Meme si les données sont en cache tu pourras avoir le meme nombre de read (il seront logical au lieu de physical) mais c'est comparable.
Pour voir ce qui coince il faut aussi regarder l'execution plan et essayer d'eliminer les operations qui prennent du temps (index scan, bookmark/rid lookups, etc...)
Marsh Posté le 09-11-2010 à 11:04:32
j'arrive à rien
La j'ai une query qui met 3 minutes pour tourner.
Je refresh et bings en 2 secondes j'ai mes résultats.
ça c'est le résultat des stats:
Code :
|
Marsh Posté le 09-11-2010 à 14:31:15
Et le fois ou ca prends 3 mins t'as quoi comme stats?
58000 et 29000 c'est deja pas mal, ca fait 450MB et 226MB (a la grosse louche).
Si il faut lire ca d'un disque (physical reads) pas trop rapide ca peut prendre un certain temps, par contre ca va tres vite de la RAM (logical reads).
Ton probleme est plus de trouver pourquoi il fait autant de reads
Marsh Posté le 02-11-2010 à 12:11:16
Salut,
je tente d'optimiser certaines queries.
Le problème est que si je l'exécute la première fois, ça prend plus de 30 sec mais si je la relance, c'est instantané, balot.
Je suis en prod donc je ne peux pas faire des trucs du genre DBCC DROPCLEANBUFFERS
Est-ce qu'il est possible de ne pas cacher juste une query ?