Bonjour,
J'ai généré une trace 10046 sur une Oracle 12 avec le niveau 4 pour voir les bind variables.
Avec tkprof je me rends compte que les bind values sautent... mais bon, ce n'est pas le plus grave, je vais lire le fichier brut.
Le problème que je rencontre est le suivant : une même requête peut s'exécuter plusieurs fois, avec des valeurs de bind différentes MAIS, parfois, leur nombre change, leur type est parfois incompatible...
Exemple 1 OK : 3 exécutions, bind variables OK en nombre et en type.
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 SQL ID: 1p5grz1gs7fjq Plan Hash: 813480514 select obj#,type#,ctime,mtime,stime, status, dataobj#, flags, oid$, spare1, spare2, spare3, signature, spare7, spare8, spare9 from obj$ where owner#=:1 and name=:2 and namespace=:3 and remoteowner is null and linkname is null and subname is null Bind#0 value=96 Bind#1 value="ZZ01" Bind#2 value=1 Bind#0 value=1 Bind#1 value="ZZ01" Bind#2 value=1 Bind#0 value=0 Bind#1 value="_NEXT_OBJECT" Bind#2 value=1
Exemple 2 KO : le type des bind ne correspond pas au type des colonnes du SELECT. Bind 0 et 1 OK mais les bind 2 et 3 sont des dates qui vont soit dans les colonnes namespace et obj# soit dans les colonnes name et namespace...
Au fait, pourquoi les bind commencent à 0 dans la trace et à 1 dans la requête? On est d'accord, ci-desous Bind#0 est associé au champ owner?
Exemple 3 KO : nombre de bind différent différent selon les exécutions : pour quelle raison?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SQL ID: 8zc85a8249x81 Plan Hash: 2683643009 update obj$ set obj#=:4, type#=:5,ctime=:6,mtime=:7,stime=:8,status=:9, dataobj#=:10,flags=:11,oid$=:12,spare1=:13,spare2=:14,spare3=:15,signature=:16,spare7=:17,spare8=:18,spare9=:19 where owner#=:1 and name=:2 and namespace=:3 and remoteowner is null and linkname is null and subname is null Bind#0 value=1 Bind#1 value=0 Bind#2 value="5/31/2017 9:6:7" Bind#3 value="2/5/2018 13:39:1"
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 SQL ID: 9tgj4g8y4rwy8 Plan Hash: 3755742892 select type#,blocks,extents,minexts,maxexts,extsize,extpct,user#,iniexts, NVL(lists,65535),NVL(groups,65535),cachehint,hwmincr, NVL(spare1,0), NVL(scanhint,0),NVL(bitmapranges,0) from seg$ where ts#=:1 and file#=:2 and block#=:3 Bind#0 value=0 Bind#1 value=1024 Bind#2 value=1112 Bind#0 value=104 Bind#0 value=0 Bind#1 value="I_SYN2" Bind#2 value=4 Bind#0 value=103 Bind#0 value=0 Bind#1 value="I_SYN1" Bind#2 value=4
Partager