Est ce que qlq'un peut m'aider a optimisé un scripte SQL (il fonctionne mtn normalement ? svp sql 'teradata'.sql )
merci d'avance
Est ce que qlq'un peut m'aider a optimisé un scripte SQL (il fonctionne mtn normalement ? svp sql 'teradata'.sql )
merci d'avance
Bonjour,
Pour répondre correctement à ta question il faudrait
- avoir un descriptif de tes tables
- avoir un plan d'execution réel pour savoir où ça coince
- avoir la liste des index
- savoir ton sgbd
Sinon à la lecture de ton script j'ai vu plusieurs fois dans un order by de fonction de fenêtrage
Cela pourrait se transformer en une table de correspondance ou une vue
Code : Sélectionner tout - Visualiser dans une fenêtre à part case when COD_EVT in ('74','43') then '1000' when COD_EVT in ('21', '42') then '0' else COD_EVT end
Tu fais une jointure externe sur cette table de correspondance et ton order by devient
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 select '74' as Code_EVT, '1000' as Ordre union select '43' as Code_EVT, '1000' as Ordre union select '21' as Code_EVT, '0' as Ordre union select '42' as Code_EVT, '0' as Ordre
Par ailleurs
Code : Sélectionner tout - Visualiser dans une fenêtre à part COALESCE(ORDRE,CODE_EVT)
me semble quelque peu compliqué, et n'utilisera jamais d'index que cherches tu à faire?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 ,CAST( SUBSTRING (CAST ( TO_TIMESTAMP( GREATEST( COALESCE(TO_CHAR(CNT.DAT_DEB_VLD , 'yyyymmddhh24miss'),'19000101000000'), COALESCE(TO_CHAR(EVT.DAT_EVT_UTC, 'yyyymmddhh24miss'),'19000101000000') ),'yyyymmddhh24miss') AS VARCHAR(25)) FROM 1 FOR 19) AS TIMESTAMP(0) FORMAT 'YYYY/MM/DDBHH:MI:SS') AS DAT_EVT_UTC
Enfin si tu ne veux pas prendre le risque d'être spammé enlève ton adresse mail de ton post.
Cordialement
Soazig
le scripte fonctionne bien mais on dois l'optimiser , on travaille sur teradata
Bonjour,
Tu n'as répondu qu'à une question sur 5.
Je reformule pour le plan d’exécution il servira à savoir ce qui prend du temps, et quelle est ou quelles sont la ou les portions à remanier.
As tu essayé ma suggestion avec table de correspondance.
Nous ne sommes pas magiciens, sans information nous ne pouvons pas deviner.
A+
Soazig
Merci pour votre réponse , pour le reste des questions je peux réponde demain en rentrant au boulot , j'ai ramené que le script pour le moment , merci encore une fois .
voila le message de demande d'optimisation ''Optimisation technique de la requête sur le calcul d'EVENT.
Avec la quantité croissante d'événement, une optimisation est nécessaire pour éviter tout accident dans un proche avenir.''
Partager