Sp auto 15

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Script SQL*Plus d'administration (Statspack)
Voir aussi Sp auto

Sp auto 15 crée la même tâche Statspack que Sp auto, mais planifiée toutes les 15 minutes calées sur les quarts d'heure (:00, :15, :30, :45) plutôt qu'une fois par heure — utile pour un diagnostic plus fin lors d'un incident de performance en cours, au prix d'un référentiel Statspack qui grossit nettement plus vite.

Le calcul de la prochaine échéance (TRUNC(sysdate,'HH24')+((FLOOR(TO_NUMBER(TO_CHAR(sysdate,'MI'))/15)+1)*15)/(24*60)) arrondit au quart d'heure suivant : par exemple, un lancement à 22h32 programme le premier job à 22h45, puis 23h00, et ainsi de suite.

Script

PROMPT =========================================================================
PROMPT Ce script crée un nouveau job DBMS_JOB exécuté au quart de chaque heure
PROMPT (toutes les 15 minutes). Le job effectue un instantané Statspack via le
PROMPT package STATSPACK fourni par Oracle.
PROMPT
PROMPT À exécuter connecté en tant que propriétaire du référentiel STATSPACK
PROMPT (typiquement PERFSTAT). Le script demande le mot de passe PERFSTAT.
PROMPT
PROMPT Le paramètre init.ora job_queue_processes doit être supérieur à zéro
PROMPT pour pouvoir soumettre et exécuter un job.
PROMPT =========================================================================
PROMPT
PROMPT Appuyer sur [ENTRÉE] pour continuer, ou CTRL-C pour annuler...
PAUSE

PROMPT Mot de passe de l'utilisateur PERFSTAT :
CONNECT perfstat

-- Planifie un instantané exécuté toutes les 15 minutes
VARIABLE jobno  NUMBER;
VARIABLE instno NUMBER;

BEGIN

  SELECT instance_number INTO :instno
  FROM   v$instance;

  DBMS_JOB.SUBMIT(   :jobno
                   , 'statspack.snap;'
                   , TRUNC(sysdate,'HH24')+((FLOOR(TO_NUMBER(TO_CHAR(sysdate,'MI'))/15)+1)*15)/(24*60)
                   , 'TRUNC(sysdate,''HH24'')+((FLOOR(TO_NUMBER(TO_CHAR(sysdate,''MI''))/15)+1)*15)/(24*60)'
                   , TRUE
                   , :instno);

  COMMIT;

END;
/

PROMPT Numéro de job (à noter pour le modifier ou le supprimer) :
PRINT jobno

PROMPT Valeur courante de job_queue_processes :
SHOW PARAMETER job_queue_processes

PROMPT Prochaine exécution planifiée :
SELECT job, next_date, next_sec
FROM   user_jobs
WHERE  job = :jobno;

Voir aussi

  • Sp auto — variante horaire (moins de volumétrie Statspack)