Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1091 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Oracle] Factoriser de multiples requêtes sur la même vue

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Oracle] Factoriser de multiples requêtes sur la même vue

n°1917336
nrv_from_c​nr
Posté le 21-08-2009 à 14:12:36  profilanswer
 

Bonjour à tous !
 
J'ai une question optimisation Oracle à vous poser !
Je dois réaliser, via une vue, de multiples requêtes sur une autre vue (BigVue) assez lente d'exécution ; les contraintes m'empêchent de passer par des procédures stockées.
 
Pour optimiser les perfs, je pensais requêter une fois BigVue, mettre le résultat en cache, puis réaliser ma ribambelle de requêtes sur ces données en cache.
 
Pour ce faire, j'ai fais un truc du genre :

Code :
  1. with cur_VUE as (select parametre1, parametre2 from BigVue)
  2. SELECT nvl(COUNT(*),0) as Val
  3. FROM cur_VUE
  4. WHERE parametre1 = valeur1
  5. union all
  6. SELECT nvl(COUNT(*),0) as Val
  7. FROM cur_VUE
  8. WHERE parametre2 = valeur2


 
Cependant ça n'a pas l'air de fonctionner, je me prends un ORA-04031, est-ce uniquement un manque de mémoire partagée, ou y-a-t-il quelque chose qui ne va pas dans cet exemple ?
Avez-vous une proposition pour réaliser ceci de manière plus propre ?
 
D'avance merci pour vos retours !
 
++ Nrv ;)

mood
Publicité
Posté le 21-08-2009 à 14:12:36  profilanswer
 

n°1917724
casimimir
Posté le 24-08-2009 à 08:31:41  profilanswer
 

ta requete étant syntaxiquement correcte l'erreur renvoyée par oracle semble être la bonne, mais tu pourrais pas faire une requete du style:
 

Code :
  1. SELECT  sum(decode(parametre1,valeur1,1,0)) AS count_valeur1,
  2.        sum(decode(parametre2,valeur2,1,0)) AS count_valeur2
  3. FROM big_vue


 
En fait si ta table est vraiment énorme ce n'est pas sur qu'il y ait un gros intérêt a utiliser un with, car il n'arrivera peut-etre pas a tout stocker dans son cache et donc risque de swapper ses pages a crever, de plus tu ne profiteras a priori d'aucun index.
Mais il faut voir avec ton jeu de donnée et ton sql réel, la tu l'as un peu trop simplifié que pour appréhender tous les mécanismes.
 
 
 

n°1919317
fort en fr​uits
The king of cool
Posté le 28-08-2009 à 16:26:34  profilanswer
 

Tout dépend du cadre mais tu ne peux pas utiliser une vue matérialisée ?


---------------
Like a flower bending in the breeze, bend with me, sway with ease. When we dance you have a way with me, stay with me, sway with me.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Oracle] Factoriser de multiples requêtes sur la même vue

 

Sujets relatifs
Group By - Mysql: Comment eviter de faire plusieurs requetes ?requetes multiples Mysql
Procédure à suivre pour les requêtesprogrammer l'exécution de requêtes (mysql)
[SGBD/SQL] oracle spool : nom de colonne tronqué[Oracle] tranches horaires
Comment importer une bdd au format Oracle data pump?probleme de drop de table sur oracle
upload video dans une bdd oracle 
Plus de sujets relatifs à : [Oracle] Factoriser de multiples requêtes sur la même vue


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR