Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Administration
Administration Forum d'entraide sur l'administration du serveur Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/10/2007, 17h01   #1
Invité de passage
 
Inscription : août 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 17
Points : 1
Points : 1
Par défaut Requete dans shared pool

Bonjour,

Aujourd'hui je suis confronté a un problème de performance d'une requete passée sous forme de vue.
En effet ça première execution prend beaucoup de temps (17sec) alors que la deuxième prend environ 2 sec.
Mon sentiment est que oracle va taper dans son shared pool (à moins que ce soit le Database Buffer Cache) le deuxième passage ce qui permet d'accélerer le traitement.
Pour résoudre mon problème j'ai tenté de mettre une materialized view mais la mise a jour en mode fast ne peut se faire sur une requete complexe. Ce qui est dommage car ma recherche fonctionne tres bien mais le refresh on commit est une cata.

Ma question est donc la suivante:
Est ce que je peux verifier dans mon shared pool (ou le Database Buffer Cache) au démarrage de mon application si ma requete y est ?
Si elle n'est pas présente alors je peux de manière artificielle la lancer sachant que je suis sur un systeme a 420 users simultannés et que je ne compte pas le faire à chaque fois.

J'ai pensé à cette solution mais peut être existe t il d'autres solutions auquel cas je suis également preneur
guyrnaf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/11/2007, 16h19   #2
Expert Confirmé
 
Avatar de LeoAnderson
 
Inscription : septembre 2004
Messages : 2 942
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 2 942
Points : 2 972
Points : 2 972
faites un set autotrace on pour valider mais il est probable que ce soit le buffer cache qui est en jeu

ce que vous pouvez faire, c'est affecter un pool mémoire (recycle ou keep, ils sont exactement identiques) aux tables sous-jacentes à cette vue
comme ça, les données resteront [quasiment] toujours dans ce buffer

si vous êtes exigeants, vous pouvez également "pinner" ces tables pour les charger en buffer dès le démarrage de l'instance.

http://download.oracle.com/docs/cd/B....htm#sthref540
LeoAnderson est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h00.


 
 
 
 
Partenaires

Hébergement Web