|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() |
Bonjour,
je recupère des informations via une vue qui ne dispose pas de clé primaire. Il n'existe aucune données dans cette vue qui puisse etre pertinante pour composer un identifiant unique (potentiellement 2 lignes peuvent avoir les memes données). J'ai essayé de créer un identifiant en utilisant rownum, mais les perfs sont minable (on passe de 00.3s à 40 sec). Existe t'il un moyen de générer un identifiant unique en oracle (type uniqid php) ? Merci. |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 926 ![]() |
oui, sys_guid(), mais rownum ne devrait pas dégrader -autant- la performance
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() |
Merci, c'est nickel !
pour le rownum, je ne sais pas pourquoi, ma vue est construite sur un UNION ALL avec des from dblink. C'est pas ma tasse de thé oracle en fait ;-) |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Quand tu dis que tu passes de 0,03 secondes à 40 secondes, est-ce que t'as essayé de fetcher l'ensemble des lignes dans le premier cas ?
En effet, pour attribuer un rownum sur l'ensemble des lignes de la requête, Oracle doit fetcher l'intégralité des données, alors que s'il se contente d'exécuter une vue sans mettre de rownum, ton client ne fetch qu'un petit buffer (30 ou 40 lignes). Je pense que la différence de performances vient de là. Si tu fait ça, ça dure toujours 40 secondes ? Code :
SELECT rownu, v.* FROM mavue v WHERE <des critères qui filtrent 10 lignes>" |
|
|
01
|
|
|
#5 | |
|
Membre expérimenté
![]() François Inscription : février 2010 Messages : 306 ![]() |
Citation:
Parce que quand on ajoute WHERE rownum<10, au contraire ca va bien plus vite. Merci de m'eclairer! |
|
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Vu les résultats, c'est pourtant ce que j'ai l'impression qu'il fait.
|
|
|
01
|
|
|
#7 | ||
![]() ![]() |
Un simple explain plan répond pourtant à la question :
Code :
__________________
Email : http://scr.im/waldar |
||
|
00
|
|
|
#8 | ||||
|
Membre expérimenté
![]() François Inscription : février 2010 Messages : 306 ![]() |
Je suis pas ultra convaincu par les explications.
Code :
Code :
Ou alors, j'ai rate une etape.
|
||||
|
|
00
|
|
|
#9 | |||||||
|
Membre expérimenté
![]() Mohamed HouriInscription : mars 2010 Messages : 286 ![]() |
Citation:
Code :
Code :
Par contre, il faut faire attention avant de passer à la généralisation Code :
|
|||||||
|
|
11
|
|
|
#10 | |||
|
Membre expérimenté
![]() François Inscription : février 2010 Messages : 306 ![]() |
Citation:
Et je ne vois pas hyper-bien le rapport avec la phrase que vous citez. Par contre, on est d'accord. La phrase de stringbuilder est pour le moins etrange. Je suis desole, je reviens de week-end, pas facile de se remettre dans le bain. |
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com