Comparación entre sistemas de gestión de bases de datos (SGBD) (página 3)
Enviado por [email protected]
A continuación se mencionan los medios en los cuales se dará a conocer el desarrollo de este trabajo
· Este documento será entregado a las directivas del área de sistemas perteneciente a la universidad Católica de Colombia de manera impresa y/o en medio magnético
· Se dará a conocer este documento al publico en general publicándose en los sitios , y https://www.edu.red
Tabla 26. Descripción de la programación de los recursos de talento humano, físicos y actividades.
Objetivos específicos | Actividades | Duración en semanas | Recursos | Costos |
Seleccionar un sistema de gestión de base de datos protegido bajo licencia comercial y otro bajo licencia libre. | Evaluar criterios para la selección de cada uno de los diferentes sistemas de gestión de bases de datos. | 2 semanas | – Internet- Documentación- Bibliografía- Recurso Humano. | 300.000 |
Diseñar un conjunto de pruebas comparativas para manejadores de bases de datos.
| -Diseño de Formatos, definir información a incluir en estos formatos. –Medios magnéticos | 3 semanas | -Equipo de Computo Papelería- Recurso Humano | 343.300 |
Diseñar un sistema de evaluación para valorar los resultados arrojados a las pruebas desarrolladas | -diseño de las pruebas ( Reglas de Juego) Criterios avaluar, diseño del programa para ejecución de las pruebas – Medios Magnéticos | 4 semanas | Equipo de Computo Papelería- Recurso Humano | 600.000 |
Ejecución de Las pruebas | - Ejecución de las instrucciones SQL, Ejecución de los programas desarrollados- Medición de Tiempos- Valoración de las pruebas- valoración de los resultados obtenidos. | 4 semanas | Equipo de computo- papelería- recurso humano | 550.00 |
Concluir que tan conveniente es para un auditor dar una recomendación a una organización sobre, la utilización de un sistema de gestión de base de datos protegido bajo licenciamiento libre | -Análisis del resultado de la s pruebas- Conclusiones con respecto al resultado de las pruebas. | 2 semanas | Equipo de Computo Papelería- Recurso Humano | 350.000 |
TOTAL | 15 SEMANAS | 2.063.300 |
Tabla 27. Descripción de los recursos
Actividades | Recurso Humano | Perfil | Recurso Físico |
Evaluar criterios para la selección de cada uno de los diferentes sistemas de gestión de bases de datos | 2 Personas | Ingenieros de Sistemas, con conocimientos y experiencia en manejo de bases de datos. | Bibliografía, Internet, texto referentes al tema de estudio. |
Diseño de Formatos, definir información a incluir en estos formatos. –Medios magnéticos | 3 Personas | 2 Ingenieros de Sistemas, con conocimientos y experiencia en manejo de bases de datos, 1 Director de la tesis. . | 1 computador, 1 impresora, papel, tonner. |
-diseño de las pruebas ( Reglas de Juego) Criterios avaluar, diseño del programa para ejecución de las pruebas – Medios Magnéticos | 2 Personas | Ingenieros de Sistemas, con conocimientos y experiencia en manejo de bases de datos. | Equipo de Computo, impresora, bibliografía. |
- Ejecución de las instrucciones SQL, Ejecución de los programas desarrollados- Medición de Tiempos- Valoración de las pruebas- valoración de los resultados obtenidos. | 2 Personas | Ingenieros de Sistemas, con conocimientos y experiencia en manejo de bases de datos. | Equipo de Computo, el lenguaje de programación php, papelería. |
-Análisis del resultado de la s pruebas- Conclusiones con respecto al resultado de las pruebas. | 2 Personas | Ingenieros de Sistemas, con conocimientos y experiencia en manejo de bases de datos | Equipo de computo, papelería, pruebas desarrolladas , diseñadas y ejecutas. |
Tabla 28. Descripción del presupuesto.
Ingresos | Egresos | Costos |
Recursos propios 2.103.300 | Honorarios de los investigadores | 833.300 |
honorarios director ( este recurso es proporcionado por la universidad) | 0 | |
computador- impresora | 800.000 | |
papelería e insumos | 80.000 | |
compra de materiales y equipo | 350.000 | |
Transporte | 40.000 | |
TOTAL | 2.103.300 |
Al finalizar el desarrollo de este trabajo el resultado es muy enriquecedor, retomamos algunos conocimientos aportados por los profesionales en la especialización y a lo largo de nuestra trayectoria como estudiantes del ciclo profesional y como profesionales en el ámbito laboral., aspectos como administración, limitaciones sobre los sistemas de almacenamiento Sql Server 2000 y Mysql Server, conociendo características en general sobre los manejadores de bases de datos utilizados en el mercado.
Esperamos que la investigación realizada sea base para una ampliación y profundización mucho mayor teniendo otras variables de estudio o factores diferentes a comparar los cuales pueden arrojar otros resultados con un soporte diferente al señalado y aportado en este documento, por tal razón se sugiere tenerse en cuenta para investigaciones o profundizaciones sobre el tema a futuros profesionales en este campo, para los cuales esperamos aportar una guía o ayuda a los interesados en el tema del software libre Vs software comercial.
Al inicio de la investigación tuvimos algunos inconvenientes con la definición del escenario de pruebas, lo ajustamos basándonos en las características mínimas de instalación que se requiere para el buen funcionamiento de los sistemas de bases de datos, enumerados en el capitulo 8 donde se describe la metodología, no obstante que no hay escenario ideal, hicimos el mejor uso de los recursos y se obtuvieron resultados, que esperamos sean de gran utilidad.
PIATINNI, Mario G, Auditoria Informática, un Enfoque Practico, Alfa Omega. COGUAR , Robert , Windows 2000, Edicíon Especial, Editorial: Prentice Hall. MONEY, Kevin, Oracle 9i, Editorial: Oracle Press. GIL, Francisco Javier, Creación de sitos Web con Php4, Editorial: Mcgraw-Hill
STANEK, William R, Sql Server 2000 Manual del Administrator, Editorial: Mcgraw-Hill
GIM GRAY, Kalen Delaney , A fondo Sql Server 2000, Editorial: Mcgraw-Hill
hhtp://www.gnu.org hhtp://www.lawebdelprogramador.com hhtp://www.sqlmax.com hhtp://virtual.unal.edu.co hhtp://www.mssqlsite.com hhtp://www.gnsite.net
http://www.pps.jussieu.fr/~dicosmo/Piege/trampas/
"Por qué el software no debe tener propietarios". Richard Stallman.
http://www.gnu.org/philosophy/why-free.es.html
"Vender Software Libre". Richard Stallman.
http://www.grulic.org.ar/proposicion/doc/encrucijada.html.es
"Razones por las que el Estado debe usar Software Libre". Federico Heinz.
ANEXO A
En este anexo damos a conocer el código fuente de los programas utilizados en la ejecución de las pruebas realizadas en la presente investigación, desarrollado en lenguaje Php versión 4.3.1
A1. Script para la realización de la prueba de la concurrencia al SGBD Sql Server
A2. Script para la realización de la prueba de la concurrencia al SGBD Mysql Server
A3. script con que se calculara el puntaje para el que ocupo el segundo puesto es la siguiente
La formula con que se calculara el puntaje para el que obtuvo el segundo puesto de los sistemas de des gestión e bases de datos.
Script con el cual se calcula el puntaje |
<? $Mejor_Tiempo ='25'; $Segundo_Tiempo ='100'; $Ultimo_Puntaje='10'; $Puntaje= ((100 -(($Segundo_Tiempo *100)/($Mejor_Tiempo*$Ultimo_Puntaje)-10))/10)-1; $Puntaje= strtok($Puntaje, "."); echo "puntaje $Puntaje"; ?> |
ANEXO B
En este anexo damos a conocer la ejecución y resultados de los pruebas realizadas por cada uno tanto de los proceso y criterios mencionados en el capitulo 8 de este documento.
B1. Insert simultáneos – prueba de concurrencia
DISEÑO Y RESULTADO DE PRUEBAS DE AUDITORIA CRITERIO: Desempeño: _X_ Carga al Sistema ___ Tolerancia a Fallas___ Integridad en los Datos _X_ PRUEBA No: P1 OCURRENCIA No: 1 PROCESO : INSERT SIMULTANESO – PRUEBA DE CONCURRENCIA |
OBJETIVO DE LA PRUEBA: Realizar una prueba de concurrencia para verificar la velocidad de inserción |
RECURSOS NECESARIOS PARA APLICARLA - Manejados bases de datos Mysql Server Y Sql Server - Tablas creadas con la misma estructura - Lenguaje de programación PHP |
PROCEDIMIENTO A EMPLEAR
Se crearán dos tablas en cada uno de los SGBD con la misma estructura y tipo de datos. La primera tabla será la de departamentos (dptos) y la segunda tabla será la de empleados. Esta ultima tabla tendrá una integridad referencial a la primera tabla. Se desarrollara un script que genere 59 procesos independientes uno del otro, cuyo objetivo es el de ingresar entre todos 10 millones de registros. Dichos procesos se ejecutaran simultáneamente. En Base a la hora de inicio y la hora en que termino la prueba , se calculara la duración Se realizará un conteo para verificar la cantidad de registros ingresados Se realizará una consulta para verificar la información ingresada
|
RESULTADOS OBTENIDOS Y PUNTUACION |
OBSERVACIONES :
El objetivo de la prueba fue cumplido con éxito para ambos SGBD |
Elaborado por : Maria Argenis González C. Fecha: 18/06/2005
Revisado por: Wilson Rojas Pabon Fecha: 20/06/2005 |
B2. Cargue de registros masivo
DISEÑO Y RESULTADO DE PRUEBAS DE AUDITORIA CRITERIO: Desempeño: _X_ Carga al Sistema ___ Tolerancia a Fallas___ Integridad en los Datos _X_ PRUEBA No: P2 OCURRENCIA No: 1 PROCESO : CARGUE DE REGISTROS MASIVO |
OBJETIVO DE LA PRUEBA: Verificar cual de los dos SGBD es mas rápido al cargar la información
|
RECURSOS NECESARIOS PARA APLICARLA - Manejados bases de datos Mysql Server Y Sql Server - Tablas creadas con la misma estructura del archivo a cargar - Un archivo con 10 millones de registros |
PROCEDIMIENTO A EMPLEAR
Se creará una tabla con la misma estructura de la tabla empleados, se llamara "empleados_cargue" Se exportara a un archivo plano la información de la tabla "empleados" (en este momento tiene 10 millones de registros) Se utilizara la herramienta mas optima para el cargue de archivos para cada SGBD. Para Mysql se utilizara "mysqlimport" de la siguiente forma "mysqlimport –p$passdb –u$usebd $bd empleados_cargue.txt " y para Sql Server 2000 se ejecutara la "bcp" de la siguiente forma "bcp $bd..empleados_cargue int C:archivos_sqlserverempleados_cargue.txt -c -U$usebd -P$passdb" En Base a la hora de inicio y la hora en que termino la prueba , se calculara la duración Se realizará un conteo para verificar la cantidad de registros ingresados Se realizará una comparación de los registros entre las tablas "empleados" y "empleados_cargue" con el fin de verificar la calidad del cargue |
RESULTADOS OBTENIDOS Y PUNTUACION |
OBSERVACIONES :
|
Elaborado por : Maria Argenis Gonzalez C. Fecha 20/06/2005 Revisado por: Wilson Rojas Pabon Fecha:22/06/05 |
B3. Inserción basado en una consulta
DISEÑO Y RESULTADO DE PRUEBAS DE AUDITORIA CRITERIO: Desempeño: _X_ Carga al Sistema ___ Tolerancia a Fallas___ Integridad en los Datos _X_ PRUEBA No: P3 OCURRENCIA No: 1 PROCESO : INSERCION BASADO EN UNA CONSULTA |
OBJETIVO DE LA PRUEBA: Verificar cual de los dos SGBD es mas rápido al cargar la información y que la información procesada sea la correcta |
RECURSOS NECESARIOS PARA APLICARLA – Manejados bases de datos Mysql Server Y Sql Server – Tablas creadas con la misma estructura del resultado de la consulta – Una tabla con 10 millones de registros |
PROCEDIMIENTO A EMPLEAR
Crear una tabla con la estructura de la tabla "empleados", se llamara "empleados_consulta" Se ejecutara el siguiente Query: "insert into empleados_cargue select *from empleados" Se realizará una consulta a la tabla "empleados" y el resultado será almacenado en la tabla "empleados_consulta" Se realizará un conteo para verificar la cantidad de registros ingresados Se realizará una comparación de los registros entre las tablas "empleados" y "empleados_consulta" con el fin de verificar la calidad del cargue |
RESULTADOS OBTENIDOS Y PUNTUACION
|
OBSERVACIONES :
El objetivo de la prueba fue cumplido con éxito para ambos SGBD * Se realizo la verificacion de la informacion ingresada en la tabla "empleados_consulta"contra la informacion consultada en la tabla "empleados" y no se encontro ninguna inconsistencia en la información |
Elaborado por : Maria Argenis Gonzalez C. Fecha: 20/06/2005
Revisado por: Wilson Rojas Pabon Fecha: 21/06/2005 |
B4. Generar una consulta en base al resultado de una subconsulta
DISEÑO Y RESULTADO DE PRUEBAS DE AUDITORIA CRITERIO: Desempeño: _X_ Carga al Sistema ___ Tolerancia a Fallas___ Integridad en los Datos __ PRUEBA No: P4 OCURRENCIA No: 1 PROCESO : GENERAR UNA CONSULTA EN BASE AL RESULTADO DE UNA SUBCONSULTA |
OBJETIVO DE LA PRUEBA: Verificar cual de los dos SGBD es mas rápido al realizar una consulta anidada |
RECURSOS NECESARIOS PARA APLICARLA – Manejados bases de datos Mysql Server Y Sql Server – Tablas creada con 10 millones de registros. "empleados" -Tabla creada con 7 registros, llamada "dptos" |
PROCEDIMIENTO A EMPLEAR Realizar la siguiente sentencia SQL :select count(*) as Resultado from empleados where id_dpto in (select id_dpto from dptos where dpto like '%uno%') Calcular la duración de la consulta en base a la hora inicial y hora final de la ejecución de la consulta |
RESULTADOS OBTENIDOS Y PUNTUACION
|
OBSERVACIONES :
El objetivo de la prueba fue cumplido con éxito para ambos SGBD * Mysql Server fue mas rápido que Sql server con una diferencia considerable. |
Elaborado por : Maria Argenis Gonzalez C. Fecha: 21/06/2005
Revisado por: Wilson Rojas Pabon Fecha: 22/06/2005 |
B5. Join – diferencia de información entre dos tablas
DISEÑO Y RESULTADO DE PRUEBAS DE AUDITORIA CRITERIO: Desempeño: _X_ Carga al Sistema ___ Tolerancia a Fallas___ Integridad en los Datos _X_ PRUEBA No: P5 OCURRENCIA No: 1 PROCESO : JOIN – DIFERENCIA DE INFORMACION ENTRE DOS TABLAS |
OBJETIVO DE LA PRUEBA: – Verificar la ejecución de una consulta con el parámetro JOIN para conocer si en una tabla tiene la misma información que la otra – Conocer cual de los dos SGBD es mas rápido al cargar la información y que la información procesada sea la correcta |
RECURSOS NECESARIOS PARA APLICARLA – Manejados bases de datos Mysql Server Y Sql Server – Dos Tablas con al misma estructura y misma información 10 millones de registros cada una |
PROCEDIMIENTO A EMPLEAR Realizar una consulta entre las dos tablas cada una con los mismos registros, 10 millones de registros. Se debe ejecutar la siguiente instrucción SQL "SELECT empleados.* FROM empleados LEFT JOIN empleados_cargue ON empleados.id_empleado=empleados_cargue.id_empleado WHERE empleados_cargue.id_empleado IS NULL" |
RESULTADOS OBTENIDOS Y PUNTUACION |
OBSERVACIONES :
El objetivo de la prueba fue cumplido con éxito para ambos SGBD * sql Server fue mas rapido con respecto a Mysql Server |
Elaborado por : Maria Argenis Gonzalez C. Fecha: 26/06/2005 Revisado por: Wilson Rojas Pabon Fecha: 26/06/2005 |
B6. Exportar la información de la tabla a un archivo
DISEÑO Y RESULTADO DE PRUEBAS DE AUDITORIA CRITERIO: Desempeño: _X_ Carga al Sistema ___ Tolerancia a Fallas ___ Integridad en los Datos___ PRUEBA No: P6 OCURRENCIA No: 1 PROCESO : EXPORTAR LA INFORMACION DE LA TABLA A UN ARCHIVO |
OBJETIVO DE LA PRUEBA: – Conocer cual de los dos SGBD es mas rápido al momento de exportar la información de una tabla con 10 millones de registros a un archivo plano |
RECURSOS NECESARIOS PARA APLICARLA - Manejados bases de datos Mysql Server Y Sql Server - Una Tabla con 10 millones de registros |
PROCEDIMIENTO A EMPLEAR Exportar toda la información de la tabla a un archivo plano. Para Mysql Server se debe ejecutar la siguiente instrucción SQL "select *from empleados into outfile "/tmp/empleados_cargue.txt " y para Sql Server 2000 se ejecutara la siguiente instrucción " bcp $bd..empleados out C:archivos_sqlserverempleados_cargue.txt -c -U$usebd -P$passdb Se realizará una importación de los archivos a una tabla con la misma estrucuta y se contara la cantidad de registros cargados. |
RESULTADOS OBTENIDOS Y PUNTUACION
|
OBSERVACIONES : El objetivo de la prueba fue cumplido con éxito para ambos SGBD * Se realizaron las verificaciones pertinentes con respeto al archivo generado cargándolo en una tabla auxiliar y realizando la comparación de datos entre dicha tabla y la tabla de donde se xporto los datos * Mysql Server fue mas rápido al momento de realizar la exportación |
Elaborado por : : Maria Argenis Gonzalez C. Fecha: 26/06/2005
Revisado por: Wilson Rojas Pabon Fecha: 26/06/2005 |
B7. Funciones varias
DISEÑO Y RESULTADO DE PRUEBAS DE AUDITORIA CRITERIO: Desempeño: _X_ Carga al Sistema ___ Tolerancia a Fallas ___ Integridad en los Datos___ PRUEBA No: P7 OCURRENCIA No: 1 PROCESO : FUNCIONES VARIAS |
OBJETIVO DE LA PRUEBA: Ejecutar las principales funciones estándares que pueda realizar el SELECT |
RECURSOS NECESARIOS PARA APLICARLA - Manejados bases de datos Mysql Server Y Sql Server - Una Tabla con 10 millones de registros |
PROCEDIMIENTO A EMPLEAR Realizar una consultas en la tabla "empleados" con 10 millones de registros teniendo en cuenta la duración de la consulta , utilizando las funciones Objetivo Ejecución Sql
Realizar una consulta que devuelva que calculo de media aritmética (avg) select avg(sueldo) from empleados; sqlserver (144) mysql(208)
Realizar una consulta que devuelva el numero de registros existentes es la tabla select count(*) from empleados; sqlserver (132) mysql(166)
Realizar una consulta que devuelva el máximo de un conjunto de valores contenidos en un campo numérico de una consulta select max(id_empleado) from empleados; sqlserver (22) mysql(0)
Realizar una consulta que devuelva el máximo de un conjunto de valores contenidos en un campo numérico especifico de una consulta select min(id_empleado) from empleados; sqlserver (0) mysql(0)
Realizar una consulta que devuelva aquellos registros cuyo campo indicado coincide con alguno de los en una lista
select *from empleados where id_empleado in(1,100, 1000, 10000, 1000000,10000000) sqlserver (0) mysql(0)
Realizar una consulta ordenada por un campo en forma ascendente select *from empleados order by id_empleado limit 1 select top 1 *from empleados order by id_empleado sqlserver (0) mysql(0)
Realizar una consulta ordenada por un campo en forma descendente select *from empleados order by id_empleado desc limit 1 select top 1 *from empleados order by id_empleado desc sqlserver (0) mysql(0)
Realizar una consulta que devuelva que omita los registros que contienen datos duplicados en los campos seleccionados. select distinct sueldo as Resultado from empleados sqlserver (147) mysql(160)
Realizar tres consulta en el campo dirección de la tabla empleados donde contenga en cualquier lugar del campo la palabra organización contenga al final del campo la palabra organización contenga al principio del campo la palabra organización
select count(*) from empleados where direccion like '%organizacion%'; sqlserver (836) mysql(209) select count(*) from empleados where direccion like '%organizacion'; sqlserver (866) mysql(210) select count(*) from empleados where direccion like 'organizacion%'; sqlserver (646) mysql(218)
Realizar una consulta donde se agrupe la información de la tabla por un campo select id_dpto from empleados group by id_dpto sqlserver (140) mysql(19) |
|
OBSERVACIONES : El objetivo de la prueba fue cumplido con éxito para ambos SGBD Para Sql Server promedio de tiempo para la realización de las pruebas es de 244 segundos. Para Mysql Server el promedio es de 111 Segundos. |
Elaborado por : Maria Argenis Gonzalez C. Fecha: 27/06/2005 Revisado por Wilson Rojas Pabon Fecha: 01/07/01 |
B8. Eliminar todos los registros de una tabla
DISEÑO Y RESULTADO DE PRUEBAS DE AUDITORIA CRITERIO: Desempeño: _X_ Carga al Sistema ___ Tolerancia a Fallas___ Integridad en los Datos___ PRUEBA No: P8 OCURRENCIA No: 1 PROCESO : ELIMINAR TODOS LOS REGISTROS DE UNA TABLA |
OBJETIVO DE LA PRUEBA: Conocer cual de los dos SGBD es mas rápido al eliminar la información de una tabla con 10 millones de registros |
RECURSOS NECESARIOS PARA APLICARLA - Manejados bases de datos Mysql Server Y Sql Server - Una tabla con 10 millones de registros |
PROCEDIMIENTO A EMPLEAR Ejecutar la siguiente instrucción SQL y determinar el tiempo de ejecución DELETE FROM empleados y TRUNCATE TABLE empleados Realizar una consulta para verificar que toda la información de la tabla haya sido borrada |
RESULTADOS OBTENIDOS Y PUNTUACION
|
OBSERVACIONES : – El objetivo de la prueba fue cumplido con éxito para ambos SGBD – Se elimino la información de dos formas, con la instrucción delete y truncate. para Mysql Server los resultados fueron delete 820 segundos consumo promedio de cpu: 41% truncate 800 segundos consumo promedio de cpu: 42%
para Sql Server los resultados fueron delete 801 segundos consumo promedio de cpu: 20% truncate 1 segundos consumo promedio de cpu: 40%
Se realiza sumatoria de los tiempos para cada uno de los SGBD y se saca un promedio. el resultado es : para Mysql Server 810 Segundos y para Sql Server es de 401 segundo. |
Elaborado por : Maria Argenis Gonzalez C. Fecha 01/07/2005
Revisado por: Wilson Rojas Pabon Fecha: 03/07/2005 |
B9. Eliminar un rango de registros de una tabla
DISEÑO Y RESULTADO DE PRUEBAS DE AUDITORIA CRITERIO: Desempeño: _X_ Carga al Sistema ___ Tolerancia a Fallas___ Integridad en los Datos___ PRUEBA No: P9 OCURRENCIA No: 1 PROCESO : ELIMINAR UN RANGO DE REGISTROS DE UNA TABLA |
OBJETIVO DE LA PRUEBA: Conocer cual de los dos SGBD es mas rápido al eliminar 1 millón de registros en una tabla con 10 millones de registros |
RECURSOS NECESARIOS PARA APLICARLA - Manejados bases de datos Mysql Server Y Sql Server - Una tabla con 10 millones de registros |
PROCEDIMIENTO A EMPLEAR Ejecutar la siguiente instrucción SQL y determinar el tiempo de ejecución DELETE FROM empleados WHERE id_empleado >=5000000 and id_empleado<=6000000 Realizar una consulta para verificar que toda la información de la tabla haya sido borrada y la cantidad de registos existentes Select count(*) from empleados WHERE id_empleado >=5000000 and id_empleado<=6000000 Select count(*) from empleados |
RESULTADOS OBTENIDOS Y PUNTUACION
|
OBSERVACIONES :
El objetivo de la prueba fue cumplido con éxito para ambos SGBD Mysql Server tubo un mejor tiempo de respuesta con respecto a Sql Server El objetivo de la prueba fue cumplido con éxito para ambos SGBD Mysql Server tubo un mejor tiempo de respuesta con respecto a Sql Server |
Elaborado por : Maria Argenis Gonzalez C. Fecha: 07/07/2005 Revisado por :Wilson Rojas Pabon Fecha: 08/07/2005 |
B10. Eliminar un rango de registros de una tabla y recuperarlos con roll back
DISEÑO Y RESULTADO DE PRUEBAS DE AUDITORIA CRITERIO: Desempeño: _X_ Carga al Sistema ___ Tolerancia a Fallas___ Integridad en los Datos___ PRUEBA No: P10 OCURRENCIA No: 1 PROCESO : ELIMINAR UN RANGO DE REGISTROS DE UNA TABLA y RECUPERARLOS CON ROLL BACK |
OBJETIVO DE LA PRUEBA: Conocer cual de los dos SGBD es mas rápido al eliminar y recuperar X cantidad de registros utilizando las instrucciones SQL "delete y rollback" en una tabla con 10 millones de registros |
RECURSOS NECESARIOS PARA APLICARLA - Manejados bases de datos Mysql Server Y Sql Server - Una tabla con 10 millones de registros |
PROCEDIMIENTO A EMPLEAR Eliminar 1, 5 y 10 millones de registros Verificar que se hallan eliminado los registros Luego recuperarlos con la instrucción SQL "rollback" Calcular el tiempo de duración de la ejecución de la sentencia Después de la prueba verificar la cantidad existente en la tabla. Debe haber 10 millones |
RESULTADOS OBTENIDOS Y PUNTUACION |
OBSERVACIONES : El objetivo de la prueba fue cumplido con éxito para ambos SGBD Estas son los resultados obtenidos en esta prueba Elaborado por : Maria Argenis Gonzalez C. Fecha: 05/07/08 Revisado por: Wilson Rojas Pabon Fecha: 08/07/08 |
|
b11. Actualización a un campo
DISEÑO Y RESULTADO DE PRUEBAS DE AUDITORIA CRITERIO: Desempeño: _X_ Carga al Sistema ___ Tolerancia a Fallas___ Integridad en los Datos___ PRUEBA No: P11 OCURRENCIA No: 1 PROCESO : ACTUALIZACION A UN CAMPO |
OBJETIVO DE LA PRUEBA: Conocer cual de los dos SGBD es mas rápido al actualizar un campo en una tabla con 10 millones de registros. |
RECURSOS NECESARIOS PARA APLICARLA - Manejados bases de datos Mysql Server Y Sql Server - Una tabla con 10 millones de registros "empleados" |
PROCEDIMIENTO A EMPLEAR Ejecutar la siguiente instrucción SQL en la tabla con 10 millones de registros "update empleados set id_dpto=5" Comprobar que toda la información haya sido actualizada ejecutando la instrucción SQl "select id_dpto, count(*) from empleados group by id_dpto" Calcular la duración de ejecución de la instrucción SQL
|
RESULTADOS OBTENIDOS Y PUNTUACION
|
OBSERVACIONES :
El objetivo de la prueba fue cumplido con éxito para ambos SGBD |
Elaborado por : Maria Argenis Gonzalez C. Fecha: 09/07/2005 Revisado por: Wilson Rojas Pabon Fecha: 10/07/2005 |
B12. Actualización a un campo – en cascada
DISEÑO Y RESULTADO DE PRUEBAS DE AUDITORIA CRITERIO: Desempeño: _X_ Carga al Sistema ___ Tolerancia a Fallas___ Integridad en los Datos _X_ PRUEBA No: P12 OCURRENCIA No: 1 PROCESO : ACTUALIZACION A UN CAMPO – EN CASCADA |
OBJETIVO DE LA PRUEBA: Conocer cual de los dos SGBD es mas rápido al actualizar un campo de una tabla que este referenciado a otro campo perteneciente a una tabla con 10 millones de registros |
RECURSOS NECESARIOS PARA APLICARLA - Manejados bases de datos Mysql Server Y Sql Server - Una tabla con 10 millones de registros "empleados" - Una tabla con una referencia a la tabla empleados. "dptos" |
PROCEDIMIENTO A EMPLEAR En la tabla "empleados" cuenta con 10 millones de registros en cual el campo "id_dpto" tiene el numero 5. Existe la tabla llamada "dptos" y un registro con el ID numero 5. esta tablas estan relacionadas con una llave foránea. Ejecutar la siguiente instrucción SQL y determinar el tiempo de ejecución "update dptos set id_dpto=20 where id_dpto=5" Verificar que se haya actualizado la información de la tabla "empleados" ejecutando la siguiente instrucción SQl "select id_dpto, count(*) from empleados group by id_dpto" |
RESULTADOS OBTENIDOS Y PUNTUACION
|
OBSERVACIONES : El objetivo de la prueba fue cumplido con éxito para ambos SGBD * Al realizar la verificación, no se encontró ninguna anomalía en la información |
Elaborado por : Maria Argenis Gonzalez C. Fecha: 09/07/2005
Revisado por: Wilson Rojas Pabon Fecha: 10/07/2005 |
B13. Actualización a un campo – realizando una condición
DISEÑO Y RESULTADO DE PRUEBAS DE AUDITORIA CRITERIO: Desempeño: _X_ Carga al Sistema ___ Tolerancia a Fallas___ Integridad en los Datos _X_ PRUEBA No: P13 OCURRENCIA No: 1 PROCESO : ACTUALIZACION A UN CAMPO – REALIZANDO UNA CONDICION |
OBJETIVO DE LA PRUEBA: Conocer cual de los dos SGBD es mas rápido al actualizar un campo de una tabla con 10 millones de registros utilizando una condición en la instrucción SQl |
RECURSOS NECESARIOS PARA APLICARLA – Manejados bases de datos Mysql Server Y Sql Server - Una tabla con 10 millones de registros "empleados" |
PROCEDIMIENTO A EMPLEAR Ejecutar la siguiente instrucción SQl en la tabla con 10 millones de registros "update empleados set id_dpto=3 where id_empleado>=1000000 and id_empleado<=2000000 " Verificar que se haya actualizado la información de la tabla "empleados" ejecutando la siguiente instrucción SQl "select id_dpto, count(*) from empleados group by id_dpto" |
RESULTADOS OBTENIDOS Y PUNTUACION
|
OBSERVACIONES : El objetivo de la prueba fue cumplido con excito para ambos SGBD * Se realizaron las correspondientes verificaciones de la información después de ejecutar la instrucción sql, no se evidencio ninguna novedad. |
Elaborado por : : Maria Argenis Gonzalez C. Fecha: 09/07/2005
Revisado por: Wilson Rojas Pabon Fecha: 10/07/2005 |
B14. Realización backup de toda la base de datos
DISEÑO Y RESULTADO DE PRUEBAS DE AUDITORIA CRITERIO: Desempeño: ___ Carga al Sistema ___ Tolerancia a Fallas _X_ Integridad en los Datos ___ PRUEBA No: P14 OCURRENCIA No: 1 PROCESO : REALIZACION BACKUP DE TODA LA BASE DE DATOS |
OBJETIVO DE LA PRUEBA: Realizar backup de toda la base de datos donde se esta realizando las pruebas, de la tablas que se han creado solo debe estar las tablas llamadas "dptos" y "empleados". Las demás tablas creadas deben ser eliminadas. |
RECURSOS NECESARIOS PARA APLICARLA – Manejados bases de datos Mysql Server Y Sql Server - Una tabla con 10 millones de registros "empleados" y la tabla "dptos" |
PROCEDIMIENTO A EMPLEAR Asegurar que todas las tablas que hayan sido creadas para efectos de las pruebas se han eliminadas menos las tablas "dptos" y "empleados" Verificar la cantidad de registros que cada uno de ellas tiene. La tabla dptos debe tener aprox. 8 registros y la tabla empelados 10 millones de registros. Realizar una copia de seguridad de la base de datos de prueba completa para el caso de Mysql se debe ejecutar la siguiente instrucción: mysqldump -pMySql -u root mibd_innodb>c:archivos_mysqlbackup_mibd_innodb.sql Para Sqlserver de sebe: checkpoint exec sp_addumpdevice 'disk', 'miidpositivo', 'c:prueba.bak' backup database mibd_sqlserver to miidpositivo |
RESULTADOS OBTENIDOS Y PUNTUACION |
OBSERVACIONES :
El objetivo de la prueba fue cumplido con éxito para ambos SGBD |
Elaborado por : Maria Argenis Gonzalez C. Fecha: 10/07/2005
Revisado por: Wilson Rojas Pabon Fecha: 11/07/2005 |
B15. Restauración backup de toda la base de datos
DISEÑO Y RESULTADO DE PRUEBAS DE AUDITORIA CRITERIO: Desempeño: ___ Carga al Sistema ___ Tolerancia a Fallas _X_ Integridad en los Datos ___ PRUEBA No: P15 OCURRENCIA No: 1 PROCESO : RESTAURACION BACKUP DE TODA LA BASE DE DATOS |
OBJETIVO DE LA PRUEBA: Realizar el proceso de restauración al backup completo realizado a la base de datos de pruebas y verificación de la información. |
RECURSOS NECESARIOS PARA APLICARLA – Manejados bases de datos Mysql Server Y Sql Server - backup de la base de datos de prueba |
PROCEDIMI ENTO A EMPLEAR Se creará una base de datos llamada "restauración" en donde se restablecerá el backup realizado Realizar verificación de lo restaurado, ejecutando consultas tanto al backup restaurado como a la base de datos original. Los resultados deben ser iguales. Las consultas a ejecutar son : Objetivo Ejecución Sql
Realizar una consulta que devuelva el numero de registros existentes es la tabla select count(*) from empleados;
Realizar una consulta que devuelva el máximo de un conjunto de valores contenidos en un campo numérico de una consulta Select max(id_empleado) from empleados;
Realizar una consulta que devuelva el máximo de un conjunto de valores contenidos en un campo numérico especifico de una consulta select min(id_empleado) from empleados;
Realizar una consulta que devuelva aquellos registros cuyo campo indicado coincide con alguno de los en una lista
select *from empleados where id_empleado in(1,100, 1000, 10000, 1000000,10000000)
Ver los registros de la tabla dptos Select *from dptos |
RESULTADOS OBTENIDOS Y PUNTUACION
|
OBSERVACIONES : El objetivo de la prueba fue cumplido con éxito para ambos SGBD |
Elaborado por : Maria Argenis Gonzalez C. Fecha: 10/07/2005 Revisado por: Wilson Rojas Pabon Fecha: 11/07/2005 |
B16. Prueba de inserción mientras el sistema esta sobrecargado
DISEÑO Y RESULTADO DE PRUEBAS DE AUDITORIA CRITERIO: Desempeño: ___ Carga al Sistema _X_ Tolerancia a Fallas ___ Integridad en los Datos ___ PRUEBA No: P16 OCURRENCIA No: 1 PROCESO : PRUEBA DE INSERCION MIENTRAS EL SISTEMA ESTA SOBRECARGADO |
OBJETIVO DE LA PRUEBA: Determinar si el SGBD responderá a una petición de inserción de 2.000 registros, mientras se encuentra sobrecargando realizando otros procedimientos. De igual forma se buscara conocer la cantidad de recurso utilizado en CPU para dar respuesta a todos los requerimientos. |
RECURSOS NECESARIOS PARA APLICARLA – Manejados bases de datos Mysql Server Y Sql Server -Tabla "empleados" con 10 millones de registros -Se crearán tres tablas "empleados _ cargue , empleados_2000 y empleados _ concurrencia" con la misma estructura de la tabla empleados. -Un archivo llamada "empleados_cargue.txt" con los primeros 500.000 registros perteneciente a la tabla empleados. |
PROCEDIMIENTO A EMPLEAR Se realizará los siguientes procedimientos uno detrás del otro, es decir, tan pronto se ejecute el primer procedimiento, se continuara con el siguiente y así hasta llegar al ultimo. Antes de iniciar la prueba se debe verificar que las tablas "empleados _ cargue , empleados _ consulta y empleados _ concurrencia" se encuentren sin registros Se utilizara el script que se desarrollo para la realización de concurrencia de datos. la idea es ejecutar simultáneamente 59 procesos cuyo objetivo de cada uno es de insertar 169492 registros. estos registros serán almacenados en la tabla "empleados _ concurrencia" Enseguida se procederá a cargar un archivo con 500.000 registros en la tabla "empleados _ cargue" Instrucción Sql Server: bcp mibd_sqlserver..empleados _ cargue int C:archivos_sqlserverempleados_cargue.txt -c -Umiusuario –Pmiclave Instrucción Mysql Server: mysqlimport -pmiclave -umiusuario mibd_innodb empleados_cargue.txt Se procederá a realizar la inserción de los 2.000 registros. se utilizara un script en PHP que se encargue de realizar las inserciones. Esto se realizará en la tabla empleados_consulta La prueba terminara cuando el último proceso culmine cancelando los demás procedimientos. Por ultimo, se procederá a verificar la información ingresada en la table "empleados_consulta" ejecutando las siguientes consultas: select count(*) from empleados_2000 select * from empleados_2000 |
RESULTADOS OBTENIDOS Y PUNTUACION OBSERVACIONES : El objetivo de la prueba fue cumplido con éxito para ambos SGBD Durante la ejecución de la prueba se evidencio que Sql Server consume mas recurso de cpu haciendo que el comportamiento del sistema operativo sea mas lento. En mysql el consumo de CPU es de aprox. 25% iniciando picos de consumo de 35% y 100% Duro 496 Segundos En sql server el consumo de CPU se mantuvo en el 100 % Duro 220 Segundos |
Elaborado por : Maria Argenis González C. Fecha: 11/07/2005 |
Revisado por: Wilson Rojas Pabon Fecha: 13/07/2005 |
B16. Prueba de consulta mientras el sistema esta sobrecargado
Para ver esta tabla seleccionar "Descargar" del menú superior
B18 Prueba de actualización mientras el sistema esta sobrecargado
DISEÑO Y RESULTADO DE PRUEBAS DE AUDITORIA CRITERIO: Desempeño: ___ Carga al Sistema _X_ Tolerancia a Fallas ___ Integridad en los Datos ___ PRUEBA No: P18 OCURRENCIA No: 1 PROCESO : PRUEBA DE ACTUALIZACION MIENTRAS EL SISTEMA ESTA SOBRECARGADO |
OBJETIVO DE LA PRUEBA: Determinar si el SGBD responderá a una petición de Actualización en cascada en una tabla con 10 millones de registros, mientras se encuentra sobrecargando realizando otros procedimientos. De igual forma se buscara conocer la cantidad de recurso utilizado en CPU para dar respuesta a todos los requerimientos. |
RECURSOS NECESARIOS PARA APLICARLA – Manejados bases de datos Mysql Server Y Sql Server -Tabla "empleados" con 10 millones de registros -Se crearán tres tablas "empleados_cargue , empleados_consulta y empleados_concurrencia" con la misma estructura de la tabla empleados. -Un archivo llamada "empleados_cargue.txt" con los primeros 500.000 registros perteneciente a la tabla empleados. |
PROCEDIMIENTO A EMPLEAR Se realizará los siguientes procedimientos uno detrás del otro, es decir, tan pronto se ejecute el primer procedimiento, se continuara con el siguiente y así hasta llegar al ultimo. Antes de iniciar la prueba se debe verificar que las tablas "empleados_cargue , empleados_consulta y empleados_concurrencia" se encuentren sin registros y que todos los registros de la tabla empleados tengan en el campo "id_dpto" el valor de 3. Se utilizara el script que se desarrollo para la realización de concurrencia de datos. la idea es ejecutar simultáneamente 59 procesos cuyo objetivo de cada uno es de insertar 10000 registros. estos registros serán almacenados en la tabla "empleados_concurrencia" Enseguida se procederá a cargar un archivo con 500.000 registros en la tabla "empleados_cargue" Instrucción Sql Server: bcp mibd_sqlserver..empleados_cargue int C:archivos_sqlserverempleados_cargue.txt -c -Umiusuario –Pmiclave Instrucción Mysql Server: mysqlimport -pmiclave -umiusuario mibd_innodb empleados_cargue.txt Se procederá a realizar una actualización a la tabla "dptos" que por estar relacionada a la tabla empleados también realizará a esta tabla una actualización en cascada La instrucción a ejecutar es: update dptos set id_dpto=5 where id_dpto=3 La prueba terminara cuando el último proceso culmine cancelando los demás procedimientos. Por Ultimo, se verificara la información actualizada: select *from dptos select id_dpto from empleados group by id_dpto |
OBSERVACIONES : El objetivo de la prueba fue cumplido con éxito para ambos SGBD Durante la ejecución de la prueba se evidencio que Sql Server consume mas recurso de cpu haciendo que el comportamiento del sistema operativo sea más lento. |
Elaborado por : : Maria Argenis González C. Fecha: 11/07/2005
Revisado por: Wilson Rojas Pabon Fecha: 13/07/2005 |
B19 Prueba de eliminación mientras el sistema esta sobrecargado
Para ver esta tabla seleccionar "Descargar" del menú superior
B20. Prueba interrupción eléctrica
Para ver esta tabla seleccionar "Descargar" del menú superior
ANEXO C
Comparativos de características generales sobre los diferentes gestores mencionados en el desarrollo del presente trabajo. Pruebas realizadas una versión inferior a la analizada en este documento (versión 4.1.11), consultadas en Internet hhtp://www.lawebdelprogramador.com
C1. Pruebas de Acceso a Datos
MySQL 3.23.37 | PostgreSQL 7.1 | Interbase 6.2 | SAP DB 7.2 | |
Inserción 100 mil tuplas | 10 seg. | 12min 38seg | 42seg | 2min 38seg |
100.000 variados | 17seg | 6min 30seg | 1min 07seg | 8min |
1000 selects complejos | 55seg | 1min 26seg | 2min 23seg | 1min 14seg |
§ Vemos que MySQL gana siempre en velocidad
§ PostgreSQL pierde mucho en las inserciones debido a que guarda básicamente cada escritura que hace. En las pruebas con PostgreSQL, se puede ver como el disco no para de escribir, mientras que con las otras, va escribiendo a ratos. PostgreSQL también tiene un modo Bflush(usar buffer) pero no recomiendan usarlo. En cuanto a los selects complejos los trata muy bien.
§ Interbase da tiempo moderados en todos los campos sin destacar en ninguno.
§ SAP DB pierde en los inserts, pero gana en los selects complejos, aunque se muestra lento en un entorno variado con selects cortos. En la primera prueba de 100.000 inserts se llenó el fichero de log. Estaba a 10Mb y lo subimos a 20Mb, solucionando el problema.
C2. Segundos en completar las 1000 peticiones
MySQL | PostgreSQL | Interbase | SAP DB | |
10p | 312,66 | 752,74 | 225,30 | 305,31 |
10 | 325,22 | 943,40 | 212,42 | 300,03 |
20p | 849,47 | 813,69 | 262,76 | 549,99 |
20 | 947,91 | 974,51 | 291,12 | 612,06 |
30p | 1153,88 | 1620,00 | 377,75 | 763,76 |
30 | 1199,01 | 1468,79 | 408,23 | 806,18 |
40p | Timeout | Error | 681,38 | timeout |
40 | Timeout | Error | 683,29 | timeout |
50p | Timeout | Error | timeout | timeout |
50 | Timeout | Error | timeout | timeout |
§ Los tests empiezan con 10 clientes concurrentes hasta los 50, incrementando de 10 en 10.
§ Los resultados los damos en tres variables: tiempo en resolver todas las peticiones, páginas por segundo y velocidad de transferencia en Kb/seg. En las tablas, un 20 significa un test con 20 peticiones concurrentes de páginas normales, un 20p significa un test con 20 peticiones con conexión persistente.
§ Los tests fueron realizamos con un script bash que ejecuta todos los tests uno a uno y los envía a un fichero de resultados. Esto afecta a los resultados: se puede apreciar que MySQL a partir de 40 conexiones da timeout en las pruebas, pero si no ejecutamos los tests de 10, 20 y 30 conexiones anteriormente y ejecutamos el de 40 aisladamente dejando reposar la máquina, lo pasa sin problemas, incluso el de 50. Pero creemos que la gracia de un test, es ir incrementando sin parar las conexiones, para ver como escala, no probar puntas de trabajo aisladas. De hecho, desde un estado de reposo, todas aguantan hasta las 75 conexiones concurrentes.
Cuando las bases de datos se colapsan (por falta de memoria, CPU, disco, etc.), MySQL, Interbase y SAP DB simplemente dejan de responder (o tardan demasiado en hacerlo) y el Apache da un timeout que recoge el Apache Benchmark. Pero el PostgreSQL cuando ya no puede dar absorber más conexiones da un error al generar la página de Too many clients. En este caso, la página es generada, pero con el típico error de conexión, y el Apache Benchmark no lo puede detectar.. Veamos las siguiente tablas para ver los resultados:
C3. Peticiones servidas por segundo
MySQL | PostgreSQL | Interbase | SAP DB | |
10p | 3,17 | 1,32 | 4,39 | 3,24 |
10 | 3,04 | 1,04 | 4,66 | 3,30 |
20p | 1,17 | 1,21 | 3,77 | 1,80 |
20 | 1,04 | 1,01 | 3,40 | 1,62 |
30p | 0,86 | 0,61 | 2,62 | 1,30 |
30 | 0,83 | 0,67 | 2,43 | 1,23 |
40p | Timeout | Error | 1,45 | Timeout |
40 | Timeout | Error | 1,45 | timeout |
50p | Timeout | Error | Timeout | timeout |
50 | Timeout | Error | Timeout | timeout |
§ De los resultados, se ve que MySQL escalara tan
§ mal. Bajo pocas conexiones funcionó perfectamente, cumpliendo expectativas, pero no pudo con el Interbase en el tramo final.
§ PostgreSQL 7.X realmente ha mejorado la velocidad respecto las versiones 6.X. Lo normal en las 6.X es que fueran 3 veces más lentas que el MySQL. Ahora bajo pocas conexiones apenas es la mitad, y la iguala en un entorno cargado.
§ SAP DB empieza con resultados cercanos al MySQL, y después se aleja para mejor debido a su mejor escalabilidad.
§ Interbase es el mejor en todos los campos en este terreno, le pertenecen los mejores tiempos en cada test. Es el Único que llega a 50 peticiones concurrentes sin dar errores y además el que mejor escala.
§ Si MySQL se llevó el premio del test por fichero, el Interbase se lleva el de base de datos ideal para servidor Internet.
C4. Límites y Capacidades de SQL- Comparativa usando el programa crash-me
MySQL 4.1.0 | PostgreSQL 7.1 | Oracle | Sybase | Access | Informix | |
Conexiones simultáneas | 101 | 32 | 41 | 25 | 64 | 269 |
Columnas por Tabla | 2.819 | 1.600 | 1.000 | 250 | 255 | 994 |
Tamaño de fila por Columna | 65.534 | 103.275 | 255.000 | 1.960 | 2.025 | 32.356 |
Tamaño de fila por Columna sin Null | 65.502 | 103.275 | 255 | 1.941 | 2.025 | 32.356 |
Tamaño de Consulta | 1.048.574 | 16.777.216 | 16.777.216 | 65.535 | 16.777.216 | 32.766 |
Ma. ARGENIS GONZALEZ CASTELLANOS
WILSON ROJAS PABON
TRABAJO DE GRADO
Director
LUIS HUMBERTO SAENZ RUSSI
Ingeniero Electrónico
UNIVERSIDAD CATOLICA DE COLOMBIA
FACULTA DE INGENIERIA DE SISTEMAS
BOGOTA 2005
[1] http://www.gnu.org/philosophy/why-free.es.html
"Vender Software Libre". Richard Stallman.
[2] hhtp://www.gnsite.net
[3] Figura Extraída del sitio mysql.com
[4] Http://64.233.187.104./search?q=cache:iynbfipfxgqj:sqljunkies.com
[5] Http://64.233.187.104./search?q=cache:iynbfipfxgqj:sqljunkies.com
[6] Http://64.233.187.104./search?q=cache:iynbfipfxgqj:sqljunkies.com
[7] Http://64.233.187.104./search?q=cache:iynbfipfxgqj:sqljunkies.com
[8] glud.udistrital.edu.co/glud/areas/doc/miniproyectos/6_comparativa_bd
[9] [9] glud.udistrital.edu.co/glud/areas/doc/miniproyectos/6_comparativa_bd
[10] [10] glud.udistrital.edu.co/glud/areas/doc/miniproyectos/6_comparativa_bd
Página anterior | Volver al principio del trabajo | Página siguiente |