Les paramètres cachés sont ceux qu’on n’est pas censé toucher. Ceux qui sont là en cas d’extrème urgence pour contourner un bug le temps qu’Oracle ponde un “patch”. Ils sont là pour contourner les bugs, c’est du moins le message du support Oracle.
Ils servent aussi d’interrrupteur et de paramétrage des fonctionalités ( le nombre de secondes entre deux snapshots d’ASH, c’est un paramètre caché, l’utilisation de certaines fonctions de l’optimiseur ce sont aussi des paramètres cachés.) Afin de les trouver et de déterminer leur fonction, il est possible d’interroger la base de dpnnées ou plus exctement ses structures mémoire qui ont ces informations en stock.
set lines 155 pages 50000 SELECT x.inst_id inst_id, x.indx num, x.ksppinm name, decode(x.ksppity, 1, 'BOOLEAN', 2, 'STRING', 3, 'INTEGER', 4, 'PARAMETER FILE', 5, 'RESERVED', 6, 'BIG INTEGER', 'UNKNOWN') type, y.ksppstvl value, decode(y.ksppstdf, 'TRUE', 'DEFAULT VALUE', 'FALSE', 'INIT.ORA') isdefault, decode(bitand(x.ksppiflg / 256, 1), 1, 'IS_SESS_MOD(TRUE)', 'FALSE') isses_modifiable, decode(bitand(x.ksppiflg / 65536, 3), 1, 'MODSYS(NONDEFERED)', 2, 'MODSYS(DEFERED)', 3, 'MODSYS(*NONDEFERED*)', 'FALSE') issys_modifiable, decode(bitand(y.ksppstvf, 7), 1, 'MODIFIED_BY(SESSION)', 4, 'MODIFIED_BY(SYSTEM)', 'FALSE') ismodified, decode(bitand(y.ksppstvf, 2), 2, 'ORA_STARTUP_MOD(TRUE)', 'FALSE') isadjusted, x.ksppdesc description, y.ksppstcmnt update_comment, x.ksppihash hash FROM x$ksppi x, x$ksppcv y WHERE x.inst_id = y.inst_id and x.indx = y.indx and x.ksppinm like '%&name%';
ou
set lines 155 pages 50000 col name for a40 col type for a15 col value for a30 wrap SELECT x.ksppinm name, decode(x.ksppity, 1, 'BOOLEAN', 2, 'STRING', 3, 'INTEGER', 4, 'PARAMETER FILE', 5, 'RESERVED', 6, 'BIG INTEGER', 'UNKNOWN') type, y.ksppstvl value, decode(bitand(y.ksppstvf, 7), 1, 'MODIFIED_BY(SESSION)', 4, 'MODIFIED_BY(SYSTEM)', 'FALSE') ismodified, decode(bitand(y.ksppstvf, 2), 2, 'ORA_STARTUP_MOD(TRUE)', 'FALSE') isadjusted, x.ksppdesc description FROM x$ksppi x, x$ksppcv y WHERE x.inst_id = y.inst_id and x.indx = y.indx and x.ksppinm like '%&name%';
Ce qui pour la vraible name settée à “quarantine” en Oracle 19c donne :
NAME | TYPE | VALUE | ISMODIFIED | ISADJUSTED |
---|---|---|---|---|
DESCRIPTION | ||||
_quarantine_enabled | BOOLEAN | TRUE | FALSE | FALSE |
quarantine: enable | ||||
_quarantine_max_objs | INTEGER | 10000 | FALSE | FALSE |
quarantine: max number of objects | ||||
_quarantine_max_mem | INTEGER | 1 | FALSE | FALSE |
quarantine: max amount of memory | ||||
_quarantine_per_hour | INTEGER | 60 | FALSE | FALSE |
quarantine: limit per hour | ||||
_optimizer_quarantine_sql | BOOLEAN | TRUE | FALSE | FALSE |
enable use of sql quarantine |