Vous êtes sur la page 1sur 14

DESARROLLAR MANTENIMIENTO PREVENTIVO, CORRECTIVO

O PROACTIVO PARA GARANTIZAR NIVELES DE SERVICIO


REQUERIDOS POR LA ORGANIZACIÓN

GERMAN HERNANDEZ PATERNINA


CRISTIAM DAVID CERON CASTRO
EDWIN JAVIER RIASCOS MANCERA
AHARON ALEXANDER AGUAS NAVARRO

GESTION Y SEGURIDAD DE BASES DE DATOS (1881782)

Servicio Nacional de Aprendizaje | SENA Medellín,


octubre 20 de 2019
AA10-Ev3-Manejo de transacciones, bloqueos y control de
concurrencia en un motor de base de datos específico.

GERMAN HERNANDEZ PATERNINA


CRISTIAM DAVID CERON CASTRO
EDWIN JAVIER RIASCOS MANCERA
AHARON ALEXANDER AGUAS NAVARRO

Trabajo presentado como requisito para optar al título de


ESPECILISTA EN GESTION Y SEGURIDAD DE BASES DE DATOS

INSTRUCTOR
JAVIER MAURICIO ALVAREZ VARGAS
jalvarez262@misena.edu.co

ESPECILISZACION EN GESTION Y SEGURIDAD DE BASES DE


DATOS (1881782)
Medellín, octubre 20 de 2019
Contenido
Objetivo ............................................................................................................................ 4
Desarrollo del laboratorio 10 ............................................................................................ 4
Manejo de transacciones. ............................................................................................. 4
Bloqueos ....................................................................................................................... 6
JMeter ......................................................................................................................... 10
Gráfico de Resultados ................................................................................................ 13
Reporte resumen ........................................................................................................ 14
Objetivo
Como DBA responsable de mantener la disponibilidad de los servicios prestados por la
base de datos, validaremos la manera en que afrontaremos el control sobre la
concurrencia y bloqueos de la base de datos, desarrollando habilidades que controlen el
comportamiento de procesos bloqueados a raíz de la generación de accesos de forma
concurrente sobre los datos compartidos.

Desarrollo del laboratorio 10


Manejo de transacciones.

4.2.2. Abrir una consulta nueva en SQL Server 2008 R2 y escribir el siguiente
comando COMMIT TRANSACTION y verificar de nuevo la cantidad de
transacciones activas y determinar que hace este comando en la base de datos
SecSalud.

Marca el final de una transacción implícita o explícita exitosa. Si @@ TRANCOUNT es


1, COMMIT TRANSACTION realiza todas las modificaciones de datos desde el inicio de
la transacción como una parte permanente de la base de datos, libera los recursos de la
transacción y disminuye @@TRANCOUNT a 0. Cuando @@TRANCOUNT es mayor
que 1, COMMIT TRANSACTION disminuye @@TRANCOUNT solo por 1 y la transacción
permanece activa.

El comando por sí solo no lleva acabo su función, teniendo en cuenta que debe ser
acompañado por otras clausulas, teniendo en cuenta que su utilización es para Finalizar
la transacción si no se han encontrado errores
.
4.2.3. Que sucede al hacer una consulta de todos los datos de la tabla eps si
anteriormente se ejecuta el siguiente comando.

Arroja el siguiente mensaje:


Cannot insert explicit value for identity column in table 'EPS' when IDENTITY_INSERT is
set to OFF
.
Causa: sql server no permite la inserción de datos a llaves primarias de forma normal, es
decir, hay que utilizar el comando, para que deje insertar datos de forma de inserción
explicita en la tabla a una PRIMARY KEY: el comando que se debe utilizar es: SET
IDENTITY_INSERT EPS

Ejemplo:
BEGIN TRANSACTION
SET IDENTITY_INSERT EPS ON
INSERT INTO EPS (ideps, nombre, estadoeps)
VALUES (15,'confisena',1)

4.2.4. Que le falta a la siguiente transacción para que se efectúen los cambios en
la base de datos Secretaria de Salud.

BEGIN TRANSACTIONINSERT
INTO persona (idpersona, tipodeidentificacion,
nombre, apellido, fechaNacimiento, sexo)
VALUES (1112548, 1, ‘Pedro’, ‘Garcia’, 1982-01-27, ’M’)
INSERT INTO EPS (ideps, nombre, estadoeps)
VALUES (16,’confinacional’,4)
A la sentencia SQL, le hace falta el comando SET IDENTITY_INSERT [tabla] ON, y asi
pueda se pueda ejecutar correctamente. Adicional a lo anterior se debe corregir los
campos de la tambla persona: tipoidentifiacion, idPersona, de tal maneta que quedaría
de la siguiente manera:

BEGIN TRANSACTION
SET IDENTITY_INSERT EPS ON
INSERT INTO Persona (idPersona, tipoidentificacion, nombre, apellido,
fechaNacimiento, sexo)
VALUES (111245548, 1, 'Pedro', 'Garcia', 1982-01-27, 'M')
INSERT INTO EPS (ideps, nombre, estadoeps)
VALUES (16,'confiacional',4)

4.2.5. En el siguiente cuadro especificar para cada tipo de transacción si es


implícita, explicita o automática.

Script Tipo de Transacción


BEGIN TRANSACTION Explicita
INSERT INTO cliente (cedula, nombre)
VALUES (1,’sena’)
COMMIT TRANSACTION
INSERT INTO cliente (cedula, nombre) Automática
VALUES (1,’sena’)
INSERT INTO cliente (cedula, nombre) Explicita
VALUES (1,’sena’)
COMMIT TRANSACTION

Bloqueos

4.3.1. Abra una nueva consulta.


Use la base de datos Secretaria de Salud En una nueva consulta ejecute sp_lock y revise
los resultados.

52 4 0 0 DB S GRANT
53 4 0 0 DB S GRANT
56 1 34 0 TAB Sch-S GRANT
56 1 64 0 TAB Sch-S GRANT
56 1 74 0 TAB Sch-S GRANT
56 32767 41 0 TAB Sch-S GRANT
56 32767 0 0 MD 77(c8de9fa1:0:0) Sch-M GRANT
56 32767 0 0 MD 77(c9016542:0:0) Sch-M GRANT
58 32767 -571204656 0 TAB Sch-S GRANT
58 1 1787153412 0 TAB IS GRANT
59 1 34 0 TAB Sch-S GRANT
66 4 0 0 DB S GRANT

Abra informe de transacciones de bloqueo para verificar que no hay ningún bloqueo
activo. Clic derecho en su bd -> informe -> informe estándar -> Todas las transacciones
de bloqueo

4.3.2. Analizar el siguiente script.

Use SecSalud:

BEGIN TRAN
PRINT ‘Transacciones Activas’
SELECT @@TRANCOUNT
SELECT * FROM EPS
PRINT ‘Actualizamos la tabla EPS’
SELECT * FROM EPS
UPDATE EPS SET nombre = ‘SALUDCOOPx’ WHERE nombre =
‘SALUDCOOP’
PRINT ‘Miramos la actualización’
SELECT * FROM EPS WHERE ideps = 1
PRINT ‘Transacciones Activas’
PRINT @@TRANCOUNT
SELECT * FROM EPS
PRINT ‘Identificador de bloqueo‘SELECT @@spid

Al ejecutar este script tener abierta las siguientes consultas:

SELECT * FROM EPS


Informe de todas las Transacciones
Informe de todas las transacciones de bloqueo
Sp_lock

¿Qué pasa con cada consulta? ¿Hay errores? Si es así, ¿Cómo se solucionarían?

El script se ejecuta con normalidad:


Arroja los valores de los procesos con bloqueo y con privilegios para acceso,
definidos por el comando SP_LOCK y afectados por la
cláusula IDENTITY_INSERT.

3.3 Ahora ejecute 3 transacciones diferentes de lectura y escritura.


 La primera transacción de solo lectura.

SELECT * FROM EPS where ideps=5

 La segunda transacción es de escritura de la tabla EPS.

INSERT INTO [SecSalud].[dbo].[EPS]


([nombre]
,[estadoeps])
VALUES
('MiEPS'
,3)

 La tercera es de escritura y lectura de la tabla PERSONA.

UPDATE persona
SET nombre='Nuevo Usuario'
WHERE idpersona='12345678'

Genere un informe de transacciones, bloqueos y ejecute el procedimiento


SP_LOCK con las siguientes consultas:

SELECT * FROM EPS


SELECT * FROM Persona
Analice lo que ocurre con ellas.

Se ejecutan las consultas con normalidad, no se presentan ningún tipo de


bloqueos
JMeter

Ingrese al Apache Jmeter y cree un nuevo plan de pruebas que se denomine con
su nombre y apellido “nombre apellido” y que tenga por comentario “secretaria
de salud”.
Posteriormente cree un grupo de hilos con una conexión a la base de datos
“secsalud” y tres peticiones JBDC en las que utilice una de las siguientes consultas
para cada solicitud.

Consulta 1: Listado con el número de identificación, nombre y apellido de las


personas, además del nombre de la EPS y la fecha de ingreso y salida.
Consulta 2: Listado en que se visualiza las EPS con el nombre de los servicios
que presta y el costo de cada uno ellos.

Consulta 3: Listado con el número de identificación, nombre y apellido de las


personas, además del tipo de afiliación que tiene.
Por último, cree un receptor gráfico de resultados y comience a variar los valores
de entrada del plan de pruebas de acuerdo con la siguiente tabla. Ejecute cada
plan de prueba y registre los datos que se solicitan en la tabla.

Gráfico de Resultados
Reporte resumen

Vous aimerez peut-être aussi