Create Job Classes

1. Los Job Classes se utilizan para agrupan distintos Jobs que tienen ciertos atributos en común. Nos puede interesar cuando queremos cierto grupo de Jobs utilicen un servicio específico de nuestra BD para que corran en algún nodo concreto de RAC o también nos puede servir para dedicar un conjunto de Jobs a un Resource Consumer Group.

Dentro de una misma clase de Jobs, si dos trabajos tienen que empezar a la misma hora se pueden utilizar prioridades que uno empiece antes que el otro. Todos los Jobs deben pertenecer a una clase, y en caso de que no se asigne ninguna, estos pertenecerán a la clase por defecto DEFAULT_JOB_CLASS.

2. Creemos una clase de Jobs sencilla.

Click “Targets” ->
-> Click “Databases” ->
-> Click “OCM” ->
-> Click “Server” ->
-> Click “Job Classes” ->
-> Click “Create” ->
-> Name = “JOB_CLASS_TEST” ->
-> Service Name = “OCM” ->
-> Click “OK”

3. Ahora podríamos crear el Job de las estadísticas, pero utilizando esta clase. Asignaremos la prioridad máxima.

Click “Targets” ->
-> Click “Databases” ->
-> Click “OCM” ->
-> Click “Server” ->
-> Click “Jobs” ->
-> Click “Create” ->
-> Name = “GATHER_STATS_HR” ->
-> Job Class = “JOB_CLASS_TEST” ->
-> PL/SQL =

BEGIN
  DBMS_STATS.GATHER_SCHEMA_STATS(
    OWNNAME=>'HR',
    METHOD_OPT=>'FOR ALL INDEXED COLUMNS SIZE AUTO',
    DEGREE=>2,
    CASCADE=>TRUE,
    NO_INVALIDATE=>FALSE);
END;

-> Click “Options” ->
-> Priority = “Very High” ->
-> Click “OK”

4. Borramos el Job y el Job Class.

Click “Jobs” ->
-> Seleccionamos “GATHER_STATS_JOBS” ->
-> Click “Delete” ->
-> Seleccionamos “Drop the job and stop any running instance.” ->
-> Click “Yes”

Click “Job Classes” ->
-> Seleccionamos “JOB_CLASS_TEST” ->
-> Click “Delete” ->
-> Seleccionamos “Drop the class and all the dependent objects will be disabled.” ->
-> Click “Yes”