Ya sabemos qué es, qué hace y para qué nos sirve, veamos ahora como lo hace y se organiza.
Snapshot: Consiste en la captura de los rendimientos y estadísticas de un conjunto de queries.
Work: Sera nuestra “unidad o set de pruebas” en el que agruparemos queries y snapshot como sus rendimientos y estadísticas. Un Work no es otra cosa que un conjunto de queries con sus variables y rendimientos (snapshots), o un conjunto de varios de estos Snapshots.
Un work es el primer elemento que debemos crear para poder empezar a trabajar, y sobre él agruparemos/organizaremos el resto los elementos del aplicativo: Queries y snapshots principalmente. Para ello, deberemos definirlo mediante un nombre y una descripción.
Un ejemplo puede ser:
WORK_NAME: Migración entorno desarrollo
WORK_DESCRIPTION: Pruebas de migración de los entornos de desarrollo de versión 11 a 12.
Una vez creado el Work podemos empezar a trabajar con sus componentes, los snapshots.
Un snapshot se compone de una serie de consultas y datos de sus ejecuciones. Los datos que contiene un snapshot son:
- Las estadísticas de ejecución de la query, como filas devueltas, accesos a disco, utilización de CPU, tiempo de ejecución, etc.
- Información sobre la query, como puede ser el usuario que la ha ejecutado, desde que programa, etc.
- Las variables de la query si se utilizan.
- El plan de ejecución de la consulta.
- Los parámetros de la base de datos cuando se recogieron las consultas.
Un snapshot se puede crear obteniendo las queries de las fuentes que hemos comentado anteriormente (proceso de Capture) y también podemos generarlo al ejecutar las mismas queries del snapshot anterior contra un escenario distinto (proceso de Replay). Esto nos permite ejecutar las queries con las mismas variables y recoger los datos de ejecución en el nuevo escenario.
Cuando tengamos dos snapshots con información de distintas fuentes Oracle podremos ejecutar una serie de informes que nos muestren como ha sido la prueba. Con estos informes vamos a poder ver si hay queries que han fallado por un cambio de versión, consultas que se han degradado, las que han mejorado, las que cambian de planes de ejecución, etc.