Cómo Calcular Número Transacciones en Base de Datos

¿Qué es una transacción?

Una transacción es una unidad lógica de trabajo que comprende una o más sentencias SQL a cargo de un único usuario. De acuerdo con el estándar SQL ANSI / ISO, con los que es compatible Oracle, una transacción comienza con una primera instrucción SQL ejecutable del usuario. Una transacción termina cuando se realiza un COMMIT o ROLLBACK por parte del usuario de forma explícita.

Las transacciones son definidas por la aplicación, no por la Base de Datos. COMMIT y ROLLBACK es la forma en que la Base de Datos registra las transacciones, pero no como se definen.

Calcular transacciones en Base de Datos

  • SQL para calcular el número medio de transacciones por segundo desde que inicio la Base de Datos:

select round(sum(s.value / (86400 * (SYSDATE – startup_time))),3) “TPS” from v$sysstat s ,v$instance i where s.NAME in (‘user commits’,’transaction rollbacks’);

  •  Con la siguiente query podemos determinar los “commit y rollback de usuario” a una determinada hora y ejecutarlo más tarde para ver el incremento de transacciones:

select to_char(sysdate,’DD-MM-YYYY HH:MI:SS’), sum(value) sum from v$sysstat where name like ‘user commits’ or name like ‘user rollbacks’;

  • Podemos llevar a cabo el siguiente procedimiento para saber el número de sentencias select/delete/update/insert ejecutadas contra la Base de Datos:

Asegurar que la auditoría está activada

connect / as sysdba
ALTER SYSTEM SET audit_trail=db SCOPE=SPFILE;
shutdown immediate
startup

AUDIT SELECT TABLE, UPDATE TABLE, INSERT TABLE, DELETE TABLE BY ACCESS;

Ejecutamos la sentencia para ver el resultado:

SELECT count(*), action_name FROM dba_audit_trail WHERE timestamp between <fecha_inicio> and <fecha_fin>;

Deja un comentario