Академический Документы
Профессиональный Документы
Культура Документы
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la
Computacin e Investigacin
Los autores,
Youssef Bassil
Abstracto
sistemas de gestin de bases de datos son la media ms fiable de hoy para organizar los datos en colecciones que se pueden buscar y actualizada. Sin embargo, muchos
sistemas DBMS estn disponibles en el mercado cada uno con sus ventajas y desventajas en trminos de fiabilidad, facilidad de uso, seguridad y rendimiento. En este trabajo se
presenta un estudio comparativo sobre el rendimiento de los sistemas DBMS superiores. Se trata principalmente de MS SQL Server 2008, Oracle 11g, IBM DB2, MySQL 5.5 y MS
Access 2010. La prueba est dirigido a la ejecucin de diferentes consultas SQL con diferente nivel de complejidad en los diferentes DBMS cinco bajo prueba. Esto abrira el
camino para construir una evaluacin de la cabeza a cabeza comparativa que muestra el tiempo medio de ejecucin, uso de memoria, y la utilizacin de la CPU de cada DBMS
despus de la finalizacin de la prueba.
Palabras clave
1. Introduccin
DBMS corto para el sistema de gestin de base de datos juega un papel importante en la mayora de los proyectos del mundo real que requieren almacenamiento, recuperacin y consulta
de datos digitales. Por ejemplo, los sitios web dinmicos, sistemas de informacin contable, los sistemas de nmina, sistemas de gestin de existencias, todos dependen de bases de datos
internas como un contenedor para almacenar y gestionar sus datos [1]. Muchas empresas de desarrollo de software son hoy en da el desarrollo y produccin de sistemas DBMS que
cuestan entre cero dlares en el caso de la libre y de cdigo abierto DBMS, y miles de dlares en el caso de los DBMS propietaria. En particular, cada DBMS se caracteriza por un conjunto
de diversas caractersticas funcionales y no funcionales y especificaciones de cada uno con sus ventajas y desventajas. Una de ellas es el rendimiento que determina qu tan rpido un
DBMS puede procesar y ejecutar consultas. En este trabajo se presenta un estudio comparativo desde una perspectiva de rendimiento entre cinco DBMS diferentes disponibles en la
actualidad en el mercado. Son saber, MS SQL Server 2008 [2], Oracle 11g [3], IBM DB2 [4], MySQL 5.5 [5], y MS Access 2010 [6]. Por esta razn, varias consultas SQL con diferente nivel
de complejidad fueron hechos a mano y probados en contra de todas estas DBMS conocidos. Adems, una referencia de rendimiento se utiliz para medir el tiempo de ejecucin de cada
consulta SQL ejecutada, adems de la utilizacin de la CPU, uso de memoria, uso de memoria virtual, y el recuento de hilos. A su debido tiempo, se elabor una comparacin
headto-cabeza, que presenta las diferencias en el rendimiento entre los diferentes DBMS bajo prueba. y MS Access 2010 [6]. Por esta razn, varias consultas SQL con diferente nivel de
complejidad fueron hechos a mano y probados en contra de todas estas DBMS conocidos. Adems, una referencia de rendimiento se utiliz para medir el tiempo de ejecucin de cada
consulta SQL ejecutada, adems de la utilizacin de la CPU, uso de memoria, uso de memoria virtual, y el recuento de hilos. A su debido tiempo, se elabor una comparacin
headto-cabeza, que presenta las diferencias en el rendimiento entre los diferentes DBMS bajo prueba. y MS Access 2010 [6]. Por esta razn, varias consultas SQL con diferente nivel de
complejidad fueron hechos a mano y probados en contra de todas estas DBMS conocidos. Adems, una referencia de rendimiento se utiliz para medir el tiempo de ejecucin de cada
consulta SQL ejecutada, adems de la utilizacin de la CPU, uso de memoria, uso de memoria virtual, y el recuento de hilos. A su debido tiempo, se elabor una comparacin headto-cabeza, que presenta las diferencias
2. Fondo
En esta seccin se discute la historia, versiones y caractersticas de los diferentes DBMS bajo prueba. Ellos son, respectivamente, MS SQL
Server 2008, Oracle 11g, IBM DB2, MySQL 5.5 y MS Access 2010.
Microsoft SQL Server es un sistema de gestin de bases de datos relacionales (RDBMS) producido por Microsoft. Su lenguaje de consulta primaria es de
Transact-SQL, una implementacin del estndar de lenguaje de consulta estructurado (SQL) ANSI / ISO utilizado por Microsoft y Sybase. Microsoft SQL Server
es compatible con las transacciones atmicas, consistentes, aislados y duraderos. Incluye soporte para la creacin de reflejo de base de datos y la agrupacin.
Un clster de servidores SQL es una coleccin de servidores configurados de forma idntica, que ayudan a distribuir la carga de trabajo entre varios servidores.
servidor SQL tambin soporta la particin de datos de bases de datos distribuidas, adems de la creacin de reflejo de base de datos que permite la creacin de
espejos de contenido de bases de datos, junto con los registros de transacciones, en otra instancia de SQL Server, basado en ciertos disparadores predefinidos
[7].
20
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la
Computacin e Investigacin
Los autores,
Oracle de base de datos (comnmente referido como Oracle RDBMS o simplemente como Oracle), es un sistema de gestin de base de datos relacional (RDBMS)
liberado por Oracle Corporation, y que comprende al menos una instancia de la aplicacin, junto con el almacenamiento de datos. Un ejemplo comprende un conjunto de
procesos del sistema operativo y las estructuras de memoria que interactan con el almacenamiento. Adems del almacenamiento, la base de datos se compone de
registros de rehacer en lnea que mantienen el historial de transacciones. Los procesos pueden a su vez archivar los registros de rehacer en lnea en registros de
archivos, que proporcionan la base para la recuperacin de datos y para algunas formas de replicacin de datos. El RDBMS de Oracle almacena los datos lgicamente en
forma de tabla-espacios y fsicamente en forma de archivos de datos. En el nivel fsico, archivos de datos comprenden uno o ms bloques de datos, donde el tamao de
bloque puede variar entre archivos de datos. Oracle cuenta con diccionario de datos, ndices, y racimos. Las versiones subsecuentes a 10g, las capacidades de
computacin distribuida introducidas en el que una aplicacin ejemplo puede utilizar los recursos de CPU de otro nodo en la red [8].
DB2 es una de las lneas de base de datos relacional que se ejecuta en servidores UNIX, Windows o Linux de IBM. DB2 se puede administrar
ya sea de una lnea de comandos o una interfaz GUI. La interfaz de lnea de comandos requiere ms conocimiento del producto, pero puede
ser ms fcilmente guin y automatizado. La interfaz grfica de usuario es un cliente Java multiplataforma que contiene una variedad de
asistentes adecuados para los usuarios novatos. DB2 da soporte a SQL y XQuery. DB2 tiene aplicacin nativa de almacenamiento de datos
XML, donde los datos XML se almacena como XML para un acceso ms rpido usando XQuery. DB2 tambin soporta la integracin en los
entornos de desarrollo integrado de Visual Studio y Eclipse.
MySQL es una, de cdigo abierto, multihilo, y el sistema de gestin de base de datos SQL multi-usuario, que tiene ms de 10 millones de instalaciones. El programa
bsico se ejecuta como un servidor que proporciona acceso multiusuario a una serie de bases de datos. MySQL incluye un amplio subconjunto de ANSI SQL 99, as
como extensiones, soporte multiplataforma, procedimientos almacenados, disparadores, cursores, vistas actualizables, y el apoyo de procesamiento de transaccin
distribuida X / Open XA. Adems, es compatible con confirmacin en dos fases del motor, los motores de almacenamiento independientes, soporte SSL,
almacenamiento en cach, la replicacin con un maestro por esclavo, muchos esclavos por maestra, la biblioteca de base de datos incorporado, y el cumplimiento de
cido usando los motores de racimo InnoDB [10].
Microsoft Office Access, anteriormente conocido como Microsoft Access, es un sistema de gestin de base de datos relacional de Microsoft que combina el motor
de base de datos Microsoft Jet relacional con unos grficos herramientas de interfaz de usuario y desarrollo de software. Es un miembro del sistema de Microsoft
Office 2010. Uno de los beneficios del acceso desde la perspectiva de un programador es su compatibilidad relativa con consultas SQL. A diferencia de un
RDBMS completo, el motor de jet carece de trigger y procedimientos almacenados. No obstante, proporciona una sintaxis especial que permite la creacin de
consultas con los parmetros, de una manera que se parece a la creacin de procedimientos almacenados, pero estos procedimientos se limitan a una
declaracin por procedimiento. Microsoft Access no permiten a las formas contienen cdigo que se activa cuando se realizan cambios a la tabla subyacente, y es
comn el uso de paso a travs de consultas y otras tcnicas de acceso para ejecutar procedimientos almacenados en los RDBMS que apoyan estos. MS Access
es utilizado por las pequeas empresas, dentro de los departamentos de grandes corporaciones y por los programadores aficionados para crear sistemas de
escritorio personalizados ad hoc para el manejo de la creacin y manipulacin de los datos. Algunos desarrolladores de aplicaciones profesionales utilizan
Access para el desarrollo rpido de aplicaciones, especialmente para la creacin de prototipos y aplicaciones independientes que sirven como herramientas para
vendedores en la carretera [11].
3. Pruebas y Evaluacin
Hay tpicamente cinco DBMS bajo prueba, cuatro de los cuales son los DBMS cliente / servidor, adecuados para la construccin de bases de datos de
mediana y gran escala, y uno independiente DBMS adecuado para la creacin de bases de datos ad-hoc pequea escala. Ellos son, respectivamente, MS
SQL Server 2008, Oracle 11g, IBM DB2, MySQL 5.5 y MS Access 2010. MS Access es el nico DBMS no cliente / servidor.
21
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la
Computacin e Investigacin
Los autores,
La prueba se lleva a cabo en un doble procesador, Intel Xeon E5649, Ncleos de 6x2, el procesador, velocidad de reloj de 2,53 GHz con 32 GB de memoria de
acceso aleatorio (RAM) y 2 TB de capacidad de almacenamiento secundario. El sistema operativo es MS Windows Server 2008 de 64 bits.
3.3. Ensayador
El probador es una aplicacin informtica desarrollada utilizando C # .NET bajo el .NET Framework 4.0. Se realiza dos tareas: La primera es para rellenar
automticamente las tablas de bases de datos con 1.000.000 de filas antes de la prueba de ejecucin. La segunda es para ejecutar las consultas SQL. La Figura 1
muestra la interfaz grfica de usuario principal del probador.
El probador implementa un temporizador incorporado para medir el tiempo de ejecucin en milisegundos, desde el inicio de la ejecucin de una consulta SQL
determinada hasta que termine para arriba. En relacin con el consumo de memoria y la utilizacin, la herramienta de MS Windows Task Manager (WTM) se
utiliza lo que ya se incluye con todas las versiones de los sistemas operativos MS Windows [12]. La Figura 2 muestra la interfaz de la herramienta de WTM
En esencia, la base de datos a ensayar sobre todas las diferentes DBMS comprende quince distintas relaciones o tablas asociados entre s por medio de
relaciones. Es una base de datos relacional modelo implementado bajo las diferentes DBMS cinco bajo prueba. La base de datos se ajusta a un sistema de
comercio al por menor. Incluye un sistema de interfaz para la creacin de facturas, recibos y rdenes de compra y un sistema de back-end para administrar los
elementos de valores. La Figura 3 representa el diseo lgico de la base de datos bajo prueba.
22
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la
Computacin e Investigacin
Los autores,
4. El proceso de pruebas
Diferentes consultas SQL se ejecut a lo largo de los diferentes DBMS cinco bajo prueba. De hecho, estas consultas tienen diferente nivel de
complejidad; que van desde el tipo simple de tipo muy complejo. Vale la pena sealar que las cinco bases de datos se rellenan con ficticias 1.000.000 de
registros de datos antes de iniciar el proceso de prueba.
Consulta # 1
Esto es un muy simple consulta, cuya tarea consiste en recuperar filas sin ninguna condicin o uniones:
Consulta # 2
Esta consulta emplea el uso de condiciones sofisticados en conjuncin con operadores lgicos:
* SELECT de la factura
DONDE Invoice.in_id> 50 Y Invoice.in_date> 1/1/2006 Y Invoice.in_date <1/1/2007 Y Invoice.in_description LIKE '% ohp%' y
Invoice.in_totalinletter LIKE '% USD' Y Invoice.in_total = Invoice.in_totalafterdiscount Y Invoice.in_total <> 100 O NO Invoice.in_cu_id> = 5 Y
Invoice.in_id ENTRE 1 Y 10 000 O Invoice.in_id> 49 + 1 Y Invoice.in_total + 33 <> 5 Y Invoice.in_total = factura. in_totalafterdiscount * 2;
23
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la
Computacin e Investigacin
Los autores,
Consulta # 3
Esta consulta se utiliza para probar la unin cooperacin entre diferentes tablas:
Consulta # 4
Esta consulta se utiliza para probar la clasificacin operacin para cada DBMS:
Consulta # 5
El propsito de esta consulta es poner a prueba capacidades computacionales de la DBMS mediante la ejecucin de diferente funciones aritmticas:
Consulta # 6
Esta consulta se suma a las condiciones de la consulta anterior despus de la TENIENDO clusula:
24
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la
Computacin e Investigacin
Los autores,
Consulta # 7
Esta consulta prueba las capacidades de cada DBMS cuando interior SELECTs anidados se utiliza:
SELECT Customer.cu_name DE DONDE cliente Customer.cu_name = (SELECT Users.us_name de los usuarios DONDE Users.us_class =
"administrador") Y Customer.cu_fax = (SELECT Supplier.su_fax desde el proveedor DONDE Supplier.su_phone = "123456") y el Cliente
.cu_email = (SELECT Supplier.su_email de proveedores DONDE Supplier.su_address LIKE "% h%");
Consulta # 8
Ahora viene la prueba definitiva que ser combinar todas las consultas anteriores en una sola consulta SQL atmica:
Consulta # 9
Esta consulta prueba la capacidad de los DBMS bajo prueba para ejecutar ACTUALIZAR declaraciones con condiciones complicadas:
25
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la
Computacin e Investigacin
Los autores,
Actualizar el artculo SET Item.it_price = Item.it_price * 0,1 = 10 Y Item.it_qtity Y Item.it_description = "TV" DONDE Item.it_id> 10 Y
Item.it_expirydate> 1/1/2007 Y Item.it_expirydate <1/1 / 2008 Y Item.it_manufacturer = "Philips" OR Item.it_manufacturer = "Sharp" OR
Item.it_manufacturer = "Toshiba";
Consulta # 10
Esta consulta final ejecuta una BORRAR consultar sobre el DBMS seleccionado:
DELETE FROM Factura DONDE Invoice.in_date> 1/1/2006 Y Invoice.in_date <1/1/2007 Y Invoice.in_description LIKE '% VTT%' y
Invoice.in_totalinletter LIKE '% USD' Y Invoice.in_total = Invoice.in_totalafterdiscount Y Invoice.in_ totalafterdiscount <> 33,1 O NO
Invoice.in_cu_id> = 5 Y Invoice.in_id ENTRE 1 Y 10 000 O Invoice.in_id <71/2 Y Invoice.in_total + 33 <> 5 Y Invoice.in_total =
Invoice.in_totalafterdiscount - 112;
5. Resultados y Conclusiones
Los resultados del ensayo se representan utilizando diagramas grficos e histogramas estadsticos. Obviamente, no hay un ganador definitivo. Los grficos
muestran claramente que IBM DB2 es el DBMS ms rpido, sin embargo MS Access tiene una menor utilizacin de la CPU y otras bases de datos IBM DB2 es
la mayor cantidad de DBMS que consume memoria primaria. La Figura 4 representa el tiempo medio de ejecucin, la figura 5 representa el promedio de
utilizacin de la CPU, y la Figura 6 representa la utilizacin media de memoria.
2000 1885.6
1800
1600
800 ms Access
600
400
200
DBMS
26
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la
Computacin e Investigacin
Los autores,
34%
35%
29%
30% 27%
24% 22% SQL Server 10g
25%
de Oracle IBM
La utilizacin media 20%
5%
0%
Servidor SQL,
10.2MB 13.2MB
MySQL 5.0,
12.5MB MS Access,
Oracle 10g,
17.9MB
IBM DB2,
22.6MB
Reconocimiento
Esta investigacin fue financiada por la Asociacin Libanesa de Ciencias de la Computacin (LACSC), Beirut, Lbano, en el marco del Proyecto de
Investigacin de Evaluacin y Rendimiento - EPRP2012.
referencias
[1] Jeffrey A. Hoffer, Mary Prescott, Heikki Topi, Base de Datos moderna, 9 edicin, Prentice Hall, 2008. [2] MS SQL Server 2008,
http://office.microsoft.com/en-us/access/default.aspx [7] Ray Rankins, Paul T. Bertucci, Chris Gallelli, Alex T. Silverstein, Microsoft SQL Server 2008 R2
ed, 2010. [8] Kevin Loney, base de datos Oracle 11g The Complete Reference, McGraw-Hill Osborne Media, ed 1o., 2008. [9] Paul Zikopoulos, George
Baklarz, Leon Katsnelson, Leon Katsnelson, IBM DB2 9 Nuevas caractersticas, McGraw-Hill
Medios Osborne; ed 1 Tes., 2007. [10] Michael Kofler, la gua definitiva a MySQL 5, Apress, 3 ed, 2005. [11] Jeff Conrad, John Viescas, Microsoft Access
2010 Inside Out, Microsoft Press, 2010. [12] Mark Russinovich, David A. Solomon, Alex Ionescu, Windows Internals: Incluyendo Windows Server 2008 y
27
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la
Computacin e Investigacin
Los autores,
Apndice A
Este apndice incluye las diferentes consultas DDL que se utilizaron para construir e implementar la base de datos relacional, junto con sus relaciones
y restricciones.
28
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la
Computacin e Investigacin
Los autores,
29
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la
Computacin e Investigacin
Los autores,
30
Revista de Ciencias de la Computacin e Investigacin (JCSCR) - ISSN 2227-328X
JCSCR http://www.jcscr.com
Vol. 1, No. 1, pginas. 20-31, February 2012
Revista de Ciencias de la
Computacin e Investigacin
Los autores,
31