Dans mon billet sur le paramètre "session_cached_cursor" (voir plus bas) je parlais de problèmes de temps de réponse Oracle liés au temps mis par l'optimiseur pour calculer le plan d'exécution des requêtes. Phénomène aggravé par le fait que l'application concernée utilisait des littéraux au lieu de variable "bind" donnant encore plus de travail à l'optimiseur.

Mon serveur Oracle est virtualisé et l'ajout de vCPU ne m'avait pas permis d'améliorer les choses. De toute façon les lenteurs de l'optimiseur étaient ressenties même avec un seul utilisateur connecté. Je ne suis pas sûr, mais je pense que l'optimiseur travail par "thread", un thread par session par exemple et je pense qu'un thread ne peut exploiter qu'un cœur de processeur. Donc l'ajout de vCPU ne change rien.

Suite à mon billet sur la compilation Visual Studio 2010 et l'intérêt de disposer de processeur avec "mode turbo" (voir plus bas) j'ai déplacé mon serveur Oracle sur un Hyper-v disposant de tels processeurs.

Bilan : Nette amélioration des temps de réponse Oracle et pourtant je ne suis passé que de 2.4 GHz à 2,8 GHz en mode turbo. J'attends avec impatience l'achat du prochain serveur Hyper-v pour lequel la fréquence CPU et le mode turbo seront privilégiés.