|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : décembre 2006 Messages : 32 ![]() |
Bonjour,
Je dois récupérer le temps écoulé depuis le debut de l'heure courante. C'est à dire que : - si il est 12H45. Je doit renvoyer 45mn soit en heure 0.75 - si il est 12H30. Je doit renvoyer 45mn soit en heure 0.5. - si il est 12H38...... Ma requete est donc la suivante : SELECT ((SYSDATE - TO_DATE(TO_CHAR(SYSDATE,'DD/MM/YYY HH24'),'DD/MM/YYY HH24'))*24) FROM DUAL Cette requete est dans une forme 10g et semble ralentir le systême. Est-il possible d'optimiser cette requete? Si oui comment ? Merci |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Intégrateur Inscription : novembre 2004 Messages : 114 ![]() |
Bonjour,
Connais-tu la fréquence à laquelle cette requête est exécutée ? |
|
|
00
|
|
|
#3 | ||
|
Membre du Club
![]() Intégrateur Inscription : novembre 2004 Messages : 114 ![]() |
Si j'ai bien compris, une approximation peut être :
Code :
|
||
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 450 ![]() |
ou alors
Code :
|
||
|
|
00
|
|
|
#5 | |||
|
Membre du Club
![]() Intégrateur Inscription : novembre 2004 Messages : 114 ![]() |
Citation:
Il faut préférer une requête avec un unique appel à SYSDATE... Cela ne portera pas, de toute manière, à conséquence ... A+ |
|||
|
|
00
|
|
|
#6 | |||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 450 ![]() |
Citation:
|
|||
|
|
00
|
|
|
#7 | ||
|
Membre du Club
![]() Intégrateur Inscription : novembre 2004 Messages : 114 ![]() |
La conversion est implicite... Mais le TO_NUMBER peut en effet lever le doute pour l'opération ariméthique...
Ma remarque sur SYSDATE était purement un cas d'école... Mais j'en ai fait les frais il y a quelques années de cela sous un Oracle 7 sur un niveau de précision supérieur à la seconde... Du coup, lorsque une requete nécessite plusieurs sysdate, en fonction du cas, je pense souvent à cette solution pour assurer une consistance fonctionnelle... Code :
A+ |
||
|
|
00
|
|
|
#8 | ||||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 450 ![]() |
Je comprend le souci sur le sysdate. Le mieux est d'avoir une variable p_sysdate initialisée.
Le cas du select from (select sydate), je suis pas sur à 100% Explication : Code :
PREMIER_DÉ 70 SECOND_DÉ 31 Le sous select est appelé 2 fois !! Le test avec des SYSTIMESTAMP renvoie la même valeur Code :
|
||||
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Intégrateur Inscription : novembre 2004 Messages : 114 ![]() |
Merci pour cette info...
Ma malheureuse expérience venait d'une version sous Oracle 7 (1997 10 ans déjà ...) A+ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com