Articles autour des SGBD Oracle, SQL Server & PostgreSQL
23 Mars 2018
Hier Mickael nous a parlé de DBMS_AUTO_TASK_IMMEDIATE et comment relancer les stats telles qu'elles sont lancées lors des fenêtres de maintenance (ici).
Juste pour rappel:
SQL> exec DBMS_AUTO_TASK_IMMEDIATE.GATHER_OPTIMIZER_STATS; PL/SQL procedure successfully completed.
Une question légitime pourrait alors se poser... Oui mais que se cache t-il derrière "Gather_Optimizer_stats"
Pour le savoir, il vous suffit de lancer la requête ci-dessous.
SET ECHO OFF
SET TERMOUT ON
SET SERVEROUTPUT ON
SET TIMING OFF
DECLARE
p1 varchar2(100);
p2 varchar2(100);
p3 varchar2(100);
p4 varchar2(100);
p5 varchar2(100);
p6 varchar2(100);
p7 varchar2(100);
p8 varchar2(100);
p9 varchar2(100);
p10 varchar2(100);
BEGIN
dbms_output.put_line('Automatic Stats Gathering Job - Valeurs de paramètres');
dbms_output.put_line('==========================================');
p1 := dbms_stats.get_prefs('AUTOSTATS_TARGET');
dbms_output.put_line(' AUTOSTATS_TARGET: ' || p1);
p2 := dbms_stats.get_prefs('CASCADE');
dbms_output.put_line(' CASCADE: ' || p2);
p3 := dbms_stats.get_prefs('DEGREE');
dbms_output.put_line(' DEGREE: ' || p3);
p4 := dbms_stats.get_prefs('ESTIMATE_PERCENT');
dbms_output.put_line(' ESTIMATE_PERCENT: ' || p4);
p5 := dbms_stats.get_prefs('METHOD_OPT');
dbms_output.put_line(' METHOD_OPT: ' || p5);
p6 := dbms_stats.get_prefs('NO_INVALIDATE');
dbms_output.put_line(' NO_INVALIDATE: ' || p6);
p7 := dbms_stats.get_prefs('GRANULARITY');
dbms_output.put_line(' GRANULARITY: ' || p7);
p8 := dbms_stats.get_prefs('PUBLISH');
dbms_output.put_line(' PUBLISH: ' || p8);
p9 := dbms_stats.get_prefs('INCREMENTAL');
dbms_output.put_line(' INCREMENTAL: ' || p9);
p10:= dbms_stats.get_prefs('STALE_PERCENT');
dbms_output.put_line(' STALE_PERCENT: ' || p10);
END;
/
Et voila le mystère est levé..
Automatic Stats Gathering Job - Valeurs de paramètres ========================================== AUTOSTATS_TARGET: AUTO CASCADE: DBMS_STATS.AUTO_CASCADE DEGREE: NULL ESTIMATE_PERCENT: DBMS_STATS.AUTO_SAMPLE_SIZE METHOD_OPT: FOR ALL COLUMNS SIZE AUTO NO_INVALIDATE: DBMS_STATS.AUTO_INVALIDATE GRANULARITY: AUTO PUBLISH: TRUE INCREMENTAL: FALSE STALE_PERCENT: 10 PL/SQL procedure successfully completed. SQL>
Enjoy !