Bonjour,

La table DD01405_COMPETENCE fait plus de 500 millions de lignes.

Cette requête prend 3 heures, savez-vous comment je peux l'optimiser ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
SELECT ID_RCI ||'¥' ||ID_COMPETENCE||'¥' ||REPLACE(REPLACE(LIBELLE_COMPETENCE,CHR(10),' '),CHR(13),' ')||'¥' ||TYPE||'¥' ||CODE||'¥' ||
TO_CHAR(DATE_AJOUT,'DD/MM/YYYY HH24:MI:SS')||'¥' ||CODE_STATUT||'¥' ||CODE_NIVEAU||'¥' ||ORIGINE_DONNEE||'¥' ||VISIBILITE_DONNEE||'¥' ||
CODE_ACTEUR||'¥' ||CODE_ORIGINE||'¥' ||TO_CHAR(DATE_MODIFICATION,'DD/MM/YYYY HH24:MI:SS')||'¥' ||TO_CHAR(DATE_VALIDITE,'DD/MM/YYYY HH24:MI:SS')||
'¥' ||(SELECT LISTAGG(LST.ID_EL,',') WITHIN GROUP(ORDER BY LST.ID_EL) CSV 
FROM JSON_TABLE(NVL(JSON_LIAISON,'{}'), '$.experiences[*]' COLUMNS ( "ID_EL" PATH '$.id')) LST) ||'¥' ||(SELECT LISTAGG(LST.ID_EL,',') 
WITHIN GROUP(ORDER BY LST.ID_EL) CSV FROM JSON_TABLE(NVL(JSON_LIAISON,'{}'), '$.formations[*]' COLUMNS ( "ID_EL" PATH '$.id')) LST) ||'¥' ||(SELECT LISTAGG(LST.ID_EL,',') 
WITHIN GROUP(ORDER BY LST.ID_EL) CSV FROM JSON_TABLE(NVL(JSON_LIAISON,'{}'), '$.cartesvisite[*]' COLUMNS ( "ID_EL" PATH '$.id')) LST) ||'¥' 
AS LIGNE_COMPETENCE 
FROM DD01405_COMPETENCE
Merci !