|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : janvier 2006 Messages : 32 ![]() |
Bonjour, j'ai une requête SQL qui fonctionne
mais je n'arrive pas à la simplifier, sans modifier l'exactitude des résultats. Ca doit pas être trop dur pourtant. Je pense qu'il faut passer par l'autojointure. Si vous pouviez me donner un coup de main, ça serait sympa. Code :
|
||
|
|
00
|
|
|
#2 | ||
|
Membre émérite
![]() ![]() Inscription : décembre 2003 Messages : 994 ![]() |
pour la rentre plus lisible déjà
Code :
ensuite, tu ne veux pas nous expliquer en français ce que c'est sensé faire, et donner le DDL des tables ?
__________________
Solidarités Nouvelles face au Chômage association loi de 1901, indépendante de tout parti politique et de toute confession religieuse. |
||
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : janvier 2006 Messages : 32 ![]() |
1er argument du select (as KmPeriodeTotal) : KM parcourus par un agent pour une période donnée
2nd argument du select (as KmTotalAgent) : KM parcourus par un agent (toutes les valeurs de la tables le concernant : pas de période précise) 3nd argument du select (as KmPeriodeIA) : KM parcourus par un agent pour une période donnée et une activité précise (CAC_CODE='IA') ------------------------------ FEUILLE_ROUTE : table contenant les informations de route d'une journée pour un agent terrain. (ABO_CODE, FRO_DATE,FRO_KM_DEBUT_JOUR,FRO_KM_FIN_JOUR) : agent, date, km début journée, km fin journée KM_JOUR :table contenant le détail par activité des km réalisés pour un agent pour un jour donnée (CAC_CODE,ABO_CODE, KMJ_KM_JOUR) : activité (ia...), agent, kilmoètres de la journée pour l'activité en question |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : avril 2005 Messages : 1 672 ![]() |
Quel est :
- la volumétrie des tables concernées - votre SGBD et sa version - votre temps d'exécution actuel ?
__________________
Modérateur des forums Oracle et Langage SQL Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : janvier 2006 Messages : 32 ![]() |
- SGBD : DB2 8.1
- Volumétrie des tables concernés (plusieurs milliers de lignes : appelez à croite quotiennement pour des dizaines d'agent) - Temps d'éxeuctiona actuelle (5s + utilisation dans Jasper/Ireport avec d'autres requêtes) dont optimisation du tps d'éxeuction et donc de la requête nécessaire ! |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : avril 2005 Messages : 1 672 ![]() |
Hum... rien d'affolant, ce qui justifie d'ailleurs que la norme SQL ne prévoit pas grand chose à optimier dans votre requête.
En tout cas, sans retoucher le modèle, je ne vois pas ce qui pourrait être améliorer ici. Les fonctions d'aggréagation sont coûteuses donc vous faîtes 3 appels dans la même requête donc vous en payez le prix Pour les 2 requêtes de la clause SELECT l'une d'entre elle opère sur une table différente de la table de la requête principale et l'autre ne possède pas les mêmes conditions que la requête principale Je peux déplacer votre discussion dans le forum DB2 si vous le souhaitez ?
__________________
Modérateur des forums Oracle et Langage SQL Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum |
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : janvier 2006 Messages : 32 ![]() |
En effet, rien d'affolant, mais comme je ne maitrise pas sur le bout des doigts le langage SQL, je m'interrogeais sur le fait que cette requête puisse être optimisé ? Les temps d'execution sont pour le moment correct, mais à terme, ils devraient logiquement s'allonger. Si quelqu'un à d'éventuelles solutions, n'hésitez pas !
Merci. Vous pouvez éventuellement déplacer la requête sur le forum DB2 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com