IBM AS/400: Como medir el rendimiento de DB2
The Mainframe Corner
0:00 / 0:00
IBM AS/400: Como medir el rendimiento de DB2
1 235 просмотров · 2 г. назад
The Mainframe Corner
10,3 тыс. подписчиков
1 235 просмотров · 2 г. назад
El video de hoy os comparto un pequeño programa escrito en RPG Full Free Form, donde vamos a medir el rendimiento que da nuestra máquina de manera Espartana, es decir, vamos a insertar un millón de registros y vamos a medir el tiempo transcurrido para sacar unos datos del tiempo ejecutado y el numero de transacciones por segundo. Asi, si os animais, podemos comparar resultados y los podeis publicar en los comentarios. Espero que este video os resulte interesante.
A continuación listo el programa y las sentencias para crear la tabla que usaremos como test:
---------- SENTENCIA SQL PARA CREAR LA TABLA:
CREATE TABLE BIBLIOTECA.TESTSQL (
ID INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
DATA1 CHAR(10),
DATA2 CHAR(30),
DATA3 CHAR(30))
-------- PROGRAMA EN FULL-FREE FORM PARA EL TEST (RECORDAR GRABARLO COMO SQLRPGLE)
/free
// Declaración de variables
dcl-s i int(10);
dcl-s data1 varchar(10);
dcl-s data2 varchar(30);
dcl-s data3 varchar(30);
dcl-s startTime timestamp;
dcl-s endTime timestamp;
dcl-s elapsedTime int(10);
dcl-s transeg int(10);
// Obtener el tiempo de inicio
startTime = %timestamp();
// Generar y guardar un millón de registros
for i = 1 to 1000000;
// Generar datos de prueba
data1 = %char(i);
data2 = 'Prueba de insercion ' + %char(i);
data3 = 'Prueba de inserción 2 ' + %char(i);
// Insertar registro en la tabla
Exec SQL
insert into BIBLIOTECA.TESTSQL (DATA1, DATA2, DATA3)
values (:data1, :data2, :data3);
if sqlcode "" 0; -------- NOTA, POR YOUTUBE NO PUEDO PONER EL PARENTESIS ANGULAR, VED EL VIDEO PARA SABER QUE PONER AQUI.
// Manejo de errores en caso de fallo en la inserción
dsply ('Error de Base de Datos: ' + %char(sqlcode));
return;
endif;
endfor;
// Obtener el tiempo de finalización
endTime = %timestamp();
// Calcular el tiempo transcurrido
elapsedTime = %diff(endTime : startTime : *SECONDS);
transeg = 1000000 / elapsedTime;
// Mostrar el tiempo transcurrido
dsply ('Tiempo transcurrido: ' + %char(elapsedTime) + ' segundos.');
dsply ('Transacciones / seg: ' + %char(transeg));
// Finalizar el programa
*inlr = *on;
return;
/end-free