Comme je l’ai signalé dans mon précédent poste, j’essaie d’être sûr que le smart scan et le predicate offloading n’ont pas eu lieu malgré la présence de deux indices (storage full et storage()). Pour cela il faut savoir si votre select en FULL table scan a été fait via db file scattered read ou via direct path read. Dans votre cas, vous dites que cela prend 15 secondes. La requête a donc été monitorée. Le plus simple serait donc de prendre le sql_id de cette requête et faire cecije ne comprend pas ce que vous voulez.
Et voir par quel moyen le FULL table scan a été fait (allez avec la souris sur la partie Wait Activity pour voir apparaître un hint indiquant le temps d’attente correspondant).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SPOOL c:\exadata_first.htm SELECT DBMS_SQLTUNE.report_sql_monitor( sql_id => 'afwx9adju2rsp', -- votre sql_id ici type => 'HTML', report_level => 'ALL') AS report FROM dual; SPOOL OFF;
Vous pouvez aussi exécuter la requête suivante:
Dans le cas où phyrd_mb = ret_mb, ceci signifierait alors que le smart scan n’a pas été capable de réduire le trafic entre les cellservs et le serveur DB.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SELECT ROUND(physical_read_bytes/1048576) phyrd_mb , ROUND(io_cell_offload_eligible_bytes/1048576) elig_mb , ROUND(io_interconnect_bytes/1048576) ret_mb , (1-(io_interconnect_bytes/NULLIF(physical_read_bytes,0)))*100 "SAVING%" FROM v$sql WHERE sql_id = '9n2fg7abbcfyx' -- votre sql_id AND child_number = 0; -- le child_number correspondant (0 probablement)
Enfin, comme l’a signalé Franck, il y a un bug ou un mauvais fonctionnement dans les DB non exadata lorsqu’un ORDER BY est combiné avec le mode FIRST_ROWS (where ROWNUM <=1) qu’il faudrait évaluer ici grâce à votre cas bien que cela ne me semble pas tout à fait correspondre car dans les DB non exadata on voit un FULL INDEX SCAN alors qu’ici on voit un INDEX RANGE SCAN.
En résumé, pourriez-vous faire ce qui est ci-dessus et aussi évaluer les performances sans hint mais avec ceci:
1) Sans rownum
2) Sans order by mais avec rownum
3) Sans order by et sans rownum
Partager