Les fix control sont apportés par les patchs / patchsets / patchsets updates et influent sur le comportement de l’optimiseur. La table x$qksbgsys les liste et donne leur description succincte
La requête suivante liste les bugs, ce qu’ils font et la version à partir de laquelle ils ont étés introduits
select BUGNO_QKSBGSYROW , DESC_QKSBGSYROW , OFE_QKSBGSYROW , EVENT_QKSBGSYROW from x$qksbgsys /
BUGNO_QKSBGSYROW DESC_QKSBGSYROW OFE_QKSBGSYROW EVENT_QKSBGSYROW ---------------- ---------------------------------------------------------------- ------------------------- ---------------- 4611850 do not clobber predicate during first-k row estimate phase 10.2.0.2 0 4663804 use smallest table as first table in join card. initial ordering 10.2.0.2 0 4663698 for cached NL table set tab_cost_io to zero 10.2.0.2 0 [...]
La requete suivante sur la table x$qksbgses est équivalente
select distinct BUGNO_QKSBGSEROW , DESC_QKSBGSEROW , OFE_QKSBGSEROW , EVENT_QKSBGSEROW from x$qksbgses /
Il est possible de désactiver un des correctifs par hint :
select /*+ OPT_PARAM('_fix_control' '9195582:0') */ * from dual ;
Depuis quelques version les vues V$SYS_FIX_CONTROL et V$SESSION_FIX_CONTROL permettent de voir ces données plus facilement
desc V$SESSION_FIX_CONTROL Name Null? Type -------------------------------- -------- ---------------------- SESSION_ID NUMBER BUGNO NUMBER VALUE NUMBER SQL_FEATURE VARCHAR2(64) DESCRIPTION VARCHAR2(64) OPTIMIZER_FEATURE_ENABLE VARCHAR2(25) EVENT NUMBER IS_DEFAULT NUMBER desc V$SYSTEM_FIX_CONTROL Name Null? Type -------------------------------- -------- ---------------------- BUGNO NUMBER VALUE NUMBER SQL_FEATURE VARCHAR2(64) DESCRIPTION VARCHAR2(64) OPTIMIZER_FEATURE_ENABLE VARCHAR2(25) EVENT NUMBER IS_DEFAULT NUMBER