Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog

LAMI DBA

Récemment, j'ai été amené à étudier la collecte des statistiques Oracle via le job automatiquement lancé par les AUTOTASKS, et j'ai eu besoin à un moment de lancer manuellement la collecte, sans passer par une commande sql classique (utilisation de dbms_stats) ni un script maison.

Alors comment faire pour utiliser et lancer manuellement le job automatique de calcul de stats, le même qui est quotidiennement planifié à 22h chaque jours (défaut Oracle) ?

La réponse est assez simple, il suffit d’utiliser le package "DBMS_AUTO_TASK_IMMEDIATE", disponible depuis la version 11g !

Depuis le compte SYS, il suffit de lancer la commande ci dessous pour lancer le calcul de stats via le job par défaut :

SQL> exec DBMS_AUTO_TASK_IMMEDIATE.GATHER_OPTIMIZER_STATS;
PL/SQL procedure successfully completed.

 

Autre alternative, mais moins pratique, serait de modifier l'heure de la fenêtre de maintenance, ce qui aurait nécessité les actions ci dessous (par exemple pour modifier l'heure à 11h au lieu de 22h), mais cela implique que la planification des autres jobs (auto space advisor, sql tuning advisor) serait également impactée.

Pour identifier les jobs automatiques :

SQL> select client_name, status, window_group from dba_autotask_client;

CLIENT_NAME                                    STATUS   WINDOW_GROUP
--------------------------------------------- --------  ------------
sql tuning advisor                            ENABLED  ORA$AT_WGRP_SQ
auto optimizer stats collection               ENABLED  ORA$AT_WGRP_OS
auto space advisor                            ENABLED  ORA$AT_WGRP_SA

 

Pour modifier la planification des jobs via les fenêtres de maintenance quotidienne :

EXECUTE DBMS_SCHEDULER.SET_ATTRIBUTE('MONDAY_WINDOW',   'repeat_interval','freq=daily;byday=MON;byhour=11;byminute=0; bysecond=0');
EXECUTE DBMS_SCHEDULER.SET_ATTRIBUTE('TUESDAY_WINDOW',  'repeat_interval','freq=daily;byday=TUE;byhour=11;byminute=0; bysecond=0');
...

 

Note : Pour changer l'heure de déclenchement des jobs, il faut modifier directement les fenêtres de maintenances quotidiennes et non pas le groupe de fenêtre de maintenance.

Enjoy ;-)

commentaires

Articles autour des SGBD Oracle, SQL Server & PostgreSQL

A propos de LAMI-DBA

Le Blog LAMI-DBA est la fusion de deux blogs existants, celui de LAurent (laodba) et celui de MIckael (dbafaq), deux DBA passionnés des sgbd, et particulièrement d'Oracle.

 

Laurent, 47 ans, Expert Oracle & MS SQL Server, Team Leader, dit "Le Taz", Certifié Expert RAC 11G, Exadata Implementation Specialist, OCA 11G, 

Profil Linkdin

 

 

 

Mickael, 37 ans, Expert Oracle, dit "Batman", Certifié Expert RAC 11G, OCP 11G, OCP 10G,

Profil Linkdin      

 

Hébergé par Overblog