Cuando lanzamos una operaci贸n larga, como puede ser un backup de RMAN o la reconstrucci贸n de un 铆ndice grande, nos podemos llegar a desesperar al no tener una estimaci贸n del tiempo que puede tardar. Incluso podemos llegar a pensar que no est谩 haciendo nada.
Para conocer el progreso de una operaci贸n larga podemos consultar la vista V$SESSION_LONGOPS obteniendo primero el id del proceso de V$SESSION. En el caso del DBA, sabremos exactamente con qu茅 usuario lo estamos lanzando, por lo que podemos simplificarlo en una 煤nica consulta.
El siguiente ejemplo muestra la evoluci贸n de la reconstrucci贸n de una partici贸n de un 铆ndice. La sentencia REBUILD se lanz贸 con el modificador PARTITION, por lo que se se crearon varios procesos en la instancia:
SELECT MESSAGE FROM V$SESSION_LONGOPS WHERE SID IN (SELECT SID FROM V$SESSION WHERE USERNAME='SYS' AND STATUS='ACTIVE') ORDER BY START_TIME;
Rowid Range Scan: APPU.RT_SK: 111958 out of 111958 Blocks done
Rowid Range Scan: APPU.RT_SK: 99670 out of 99670 Blocks done
Rowid Range Scan: APPU.RT_SK: 50518 out of 50518 Blocks done
Rowid Range Scan: APPU.RT_SK: 238934 out of 238934 Blocks done
Rowid Range Scan: APPU.RT_SK: 38230 out of 38230 Blocks done
Rowid Range Scan: APPU.RT_SK: 42273 out of 42273 Blocks done
Rowid Range Scan: APPU.RT_SK: 1160535 out of 1160535 Blocks done
Oracle considera larga cualquier operaci贸n de m谩s de 6 segundos de duraci贸n.