Bonjour,

Je souhaite optimiser des requêtes SQL et après avoir optimisé la transcription fonctionnelle du code (pour certains SQL) et l'ajout d'index, j'ai débuté l'analyse des plans via le tuning que propose Oracle.
Précision je ne suis pas DBA et sans formation particulière Oracle, juste un apprentissage sur le tas lors de mes différents projets pro...

Donc pour une requête précise, ci-dessous et générée par un progiciel donc je n'ai pas la main dessus, qui prend beaucoup de temps pour seulement 20 000 enregistrements, je souhaite lancer le "profiling".
Le problème c'est qu'en passant par SQLDeveloper (SQL Tuning Advisor) ou en créant une tache d'analyse manuellement, la réponse est la suivante "Type d'instruction SQL non pris en charge."

Seconde précision, j'ai lancé des taches d'analyse pour des SQL plus complexes et avec des sous requêtes et çà passe sans problème, donc là je sèche

Avez-vous une idée du pourquoi et si oui comment résoudre ce blocage ?

Merci pour vos retours

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
UPDATE	S_ADDR_PER BT
   SET (ADDR,
	ADDR_LINE_2,
	ADDR_LINE_3,
	ADDR_LINE_4,
	CITY,
	ZIPCODE,
	PER_ID) =
	(SELECT	IT.AP_ADDR,
		IT.AP_ADDR_LINE_2,
		IT.AP_ADDR_LINE_3,
		IT.AP_ADDR_LINE_4,
		IT.AP_CITY,
		IT.AP_ZIPCODE,
		IT.T_ADDR_PER_PER_ID
	   FROM	EIM_ADDR_PER IT
	 WHERE (IT.T_ADDR_PER__RID = BT.ROW_ID AND
		IF_ROW_BATCH_NUM = 2072040000 AND
		IF_ROW_STAT_NUM = 0 AND
		T_ADDR_PER__EXS = 'Y' AND
		T_ADDR_PER__UNQ = 'Y' AND
		T_ADDR_PER__STA = 0)),
	DB_LAST_UPD = '2019-05-22 11:01:20',
	DB_LAST_UPD_SRC = 'EIM',
	LAST_UPD = '2019-05-22 11:01:20',
	LAST_UPD_BY = '1-ZH2',
	MODIFICATION_NUM = MODIFICATION_NUM + 1
 WHERE (ROW_ID IN
	(SELECT	T_ADDR_PER__RID
	   FROM	EIM_ADDR_PER
	 WHERE (IF_ROW_BATCH_NUM = 2072040000 AND
		IF_ROW_STAT_NUM = 0 AND
		T_ADDR_PER__EXS = 'Y' AND
		T_ADDR_PER__UNQ = 'Y' AND
		T_ADDR_PER__STA = 0)))