Este documento presenta un proyecto de consultas en bases de datos realizado por un grupo de estudiantes. El proyecto incluye cuatro demostraciones: 1) el beneficio de usar índices mediante un ejemplo, 2) comparar el rendimiento de dos motores de base de datos, 3) comparar el rendimiento de una consulta con y sin un procedimiento almacenado, y 4) comparar consultas complejas con y sin JOIN. Los resultados muestran que el uso de índices, procedimientos almacenados y JOIN mejoran el rendimiento de las consultas.
0 calificaciones0% encontró este documento útil (0 votos)
109 vistas21 páginas
Este documento presenta un proyecto de consultas en bases de datos realizado por un grupo de estudiantes. El proyecto incluye cuatro demostraciones: 1) el beneficio de usar índices mediante un ejemplo, 2) comparar el rendimiento de dos motores de base de datos, 3) comparar el rendimiento de una consulta con y sin un procedimiento almacenado, y 4) comparar consultas complejas con y sin JOIN. Los resultados muestran que el uso de índices, procedimientos almacenados y JOIN mejoran el rendimiento de las consultas.
Este documento presenta un proyecto de consultas en bases de datos realizado por un grupo de estudiantes. El proyecto incluye cuatro demostraciones: 1) el beneficio de usar índices mediante un ejemplo, 2) comparar el rendimiento de dos motores de base de datos, 3) comparar el rendimiento de una consulta con y sin un procedimiento almacenado, y 4) comparar consultas complejas con y sin JOIN. Los resultados muestran que el uso de índices, procedimientos almacenados y JOIN mejoran el rendimiento de las consultas.
Este documento presenta un proyecto de consultas en bases de datos realizado por un grupo de estudiantes. El proyecto incluye cuatro demostraciones: 1) el beneficio de usar índices mediante un ejemplo, 2) comparar el rendimiento de dos motores de base de datos, 3) comparar el rendimiento de una consulta con y sin un procedimiento almacenado, y 4) comparar consultas complejas con y sin JOIN. Los resultados muestran que el uso de índices, procedimientos almacenados y JOIN mejoran el rendimiento de las consultas.
Descargue como DOCX, PDF, TXT o lea en línea desde Scribd
Descargar como docx, pdf o txt
Está en la página 1de 21
1
INSTITUTO TECNOLGICO SUPERIOR DE VALLADOLID
Organismo Pblico Descentralizado del Gobierno del Estado.
ALUMNOS: Matricula: 10070053: RILKE ALEXIS MENA AGUILAR. Matricula: 10070017: FABIAN DZUL MOO Matricula: 100700: WILBERT DE JESUS MAY TUZ Matricula: 10070011: AARON IDAHIR CAUICH SANTOS.
Carrera: ING. EN SISTEMAS COMPUTACIONALES.
Materia: ADMINISTRACION DE BASE DE DATOS.
Grado y Grupo: 6 A
Docente: LIC. PECH MAY JOS LEONEL
Asunto:
TRABAJO EN EQUIPO. PROYECTO FINAL DE LA UNIDAD 4 APLICACIN DE CONSULTAS EN LAS BASES DE DATOS.
Fecha: 09/05/2013.
2
OBJETIVO: Adquirir las habilidades y conocimientos de MySQL necesarios para utilizar, administrar y realizar consultas con las diversas herramientas de consultas para poder observar el tiempo de consulta que realiza el gestor de base de datos con diversas caractersticas aplicadas.
INTRODUCCIN: Las consultas en MySQL son de mucha importancia ya que forman parte de una herramienta que tiene como funcionamiento conocer, analizar, y visualizar cada uno de los datos de las tablas que se tienen en una base de datos en la cual podemos manipular, de acuerdo a nuestras necesidades que se nos requiere. En este ocasin fuimos manipulando la base de datos sakila de la cual realizamos una serie de actividades que mas adelante vamos a estar comentando con el fin de poner en practica cada uno de nuestros conocimientos sobre las consultas que se pueden realizar y sobre todo conocer y aplicar la optimizacion de las bases de datos que tan rapidos pueden ser los porcesos que se realizan en ella con diferentes tipos de sentencias y aplicadas de diversas formas al igual de conocer el funcionamiento de cada uno de los motores de las tablas que se pueden acoplar en ella. En el siguinete trabajo vamos a ver ejemplos de indices que como sabemos los indices son los que es un grupo de datos que MySQL asocia con una o varias columnas de la tabla. Veremos como se cambia los motores y como funcionan, al igual vamos a practicar sobre los procedimientos almacenados en la cual nos dice que son un conjunto de comandos SQL que pueden almacenarse en el servidor. Y que se pueden utilizar de nuevo sin volver a crearlos, adems de esto vamos a poner en practica el funcionamiento de los famosos join que como sabemos son los que se trata de un producto cartesiano restringido, las tuplas que se emparejan deben cumplir una determinada condicin. Y como parte final de este proyecto se concluye con la aplicacin de la optimizacin y rendimiento de las consultas para que pueda funcionar correctamente y de una forma rpida las bases de datos que estemos utilizando esprerando que esta in formacin y ejemplos sea de su agrado y que les pueda servir para poder visualizar la aplicacin de las sentencias.
3 DESARROLLO DE PROYECTO: 1. DEMOSTRAR A TRAVS DE UN EJEMPLO EL BENEFICIO QUE OFRECE EL USO DE LOS NDICES.
Base de datos sakila, en esta primera demostracin, se implement la tabla actor, con su correspondiente clon, en este caso la tabla actor_clon.
Asignando los ndices de los campos
4
Una vez que se realiz esta accin ahora toca el turno de realizar las consultas y verificar los tiempos y toca el turno de la primera consulta con sus respectivos tiempos y es importante mencionar que en los tiempos es un promedio de 5 aplicaciones de la misma consulta. PRIMERA CONSULTA:
CLON DE LA TABLA ACTOR, CON SUS RESPECTIVOS NDICES TABLA ACTOR, SIN NINGN NDICE
5 Primera prueba realizada en la tabla actor con la consulta: select * from actor where last_name='DAVIS'; RESULTADOS 0,001 0,001 0 0,001 0 promedio: 0,0006
A continuacin se presentara la consulta anterior pero aplicada en la tabla donde se aplicaron los ndices.
Primera prueba realizada en la tabla
6 actor_clon, con la consulta select * from actor_clon where last_name='DAVIS'; RESULTADOS
Aqu podemos apreciar que en la segunda tabla aplicando los ndices los tiempos de ejecucin fueron ms rpidos que en la primera tabla esto nos dice que es ms eficiente la aplicacin de dichas sentencias con las propiedades de los ndices.
0,001 0,001 0,001 0,001 0,001 promedio: 0,001
7
2. IMPLEMENTAR UNA MISMA TABLA CON 2 MOTORES DE BASES DE DATOS DIFERENTES Y DEMOSTRAR CUL DE ELLOS TIENE UN MEJOR RENDIMIENTO.
En primera instancia se seleccion una tabla film que cuenta con el motor de tabla denominado InnoDB como se muestra a continuacin.
Una vez que escogemos la tabla, procedemos a crear una segunda tabla pero ahora cambiando el motor de arranque que en este caso vamos a una con motor de MyIsam que llevara el nombre de film_copy como se muestra a continuacin el procedimiento. Encima de la tabla original film se le da un clic derecho y se selecciona crate new y despus se selecciona table copy.
Al hacer esta opcin nos sale un cuadro como el siguiente donde vamos a des seleccionar la opcin de las Foreign keys, para que se pueda crear la nueva tabla.
8
Una vez realizado el procedimiento se crea y despus grficamente se cambia el motor de la copia que realizamos de la tabla y despus como se muestra a continuacin veremos el cdigo de la tabla donde le cambiamos el motor para que ya estemos listos para realizar las consultas con ambas y checar los tiempos.
Aqu se muestra la primera tabla que se modific con el motor MyISAM
9 Y aqu veremos la tabla original que tiene el motor InnoDB.
A continuacin mostraremos la primera consulta utilizando el motor InnoDB y seguidamente con MyISAM para ver los tiempos. La primera consulta fue esta con el motor que maneja InnoDB;
Y los tiempos fueron:
Para sacar el tiempo en ejecucin vamos a sumar todos los tiempo y lo vamos a promediar
Que en total con este motor nos est dando un tiempo en promedio de: 0.0094 segundos para que se pueda realizar esta consulta.
10 A continuacin se mostrara la misma consulta pero ahora se utilizara el motor MyISAM, la consulta es la siguiente:
Y los tiempos son los siguientes con la utilizacin del segundo motor:
Y los tiempos en promedios son es: 0.003 segundos que se puede hacer esta consulta con el motor MyISAM donde nos podemos dar cuenta que es ms rpido que el InnoDB.
Ahora realizando una nueva consulta los resultados son los siguientes:
En el primer motor la primera consulta es:
Y los tiempos son los siguientes:
11 Y el tiempo en promedio de esta consulta fue de: 0.0062 segundos de ejecucin. Y ahora con el siguiente motor la consulta es:
Y los tiempos son los siguientes:
Donde nos podemos dar cuenta que esta accin lo est realizando sper rapidsimo que en todas las ejecuciones lo realizo en un tiempo de 0.000 en las 5 ejecuciones que realizamos.
12 3. REALIZAR UNA COMPARATIVA ENTRE UNA CONSULTA EMPLEANDO UN PROCEDIMIENTO ALMACENADO Y LA MISMA CONSULTA SIN EMPLEAR PROCEDIMIENTOS ALMACENADOS. DE ACUERDO A LAS PRUEBAS REALIZADAS EMITIR UNA CONCLUSIN Y DETERMINAR CUL TIENE EL MEJOR RENDIMIENTO.
CONSULTA CON PROCEDIMIENTO ALMACENADO
En esta pantalla se muestra como se crea un procedimiento con Heidi SQL; Se le pone por nombre Consulta1.
En el procedimiento se hace una consulta utilizando la tabla film y film_id de la base de datos sakila.
13 CALL CONSULTA1;
/* 0 rows affected, 5,462 rows found. Duration for 1 query: 0.000 sec. (+ 0.063 sec. network) */
/* 0 rows affected, 5,462 rows found. Duration for 1 query: 0.000 sec. (+ 0.125 sec. network) */
/* 0 rows affected, 5,462 rows found. Duration for 1 query: 0.000 sec. (+ 0.124 sec. network) */
Se llama al procedimiento y genera los resultados en 0.104 segundos en promedio (porque se ejecut tres veces el mismo procedimiento y se realiz un promedio de los tiempos). CONSULTA SIN PROCEDIMIENTO ALMACENADO
SELECT * FROM film INNER JOIN film_actor ON (film.film_id = film_actor.film_id);
14
/* 0 rows affected, 5,462 rows found. Duration for 1 query: 0.000 sec. (+ 0.125 sec. network) */
/* 0 rows affected, 5,462 rows found. Duration for 1 query: 0.000 sec. (+ 0.140 sec. network) */
/* 0 rows affected, 5,462 rows found. Duration for 1 query: 0.000 sec. (+ 0.141 sec. network) */
Se realiza la misma consulta solo que ahora sin procedimiento almacenado y el tiempo promedio en responder son 0.135 segundos. Como conclusin se puede decir lo siguiente: La consulta con procedimiento almacenado fue de 0.104 segundos y la misma consulta sin el procedimiento fue de 0.135; entonces se puede observar que la consulta con el procedimiento almacenado es ms ptima en cuanto al tiempo de respuesta, marcando una diferencia de 0.031 segundos.
15 4. REALIZAR UNA CONSULTA COMPLEJA EMPLEANDO JOIN Y OTRA CONSULTA COMPLEJA EQUIVALENTE SIN EMPLEAR JOIN QUE GENERE LOS MISMOS RESULTADOS Y DETERMINAR EL MEJOR RENDIMIENTO.
SELECT * FROM film INNER JOIN film_actor ON (film.film_id = film_actor.film_id);
/* 0 rows affected, 5,462 rows found. Duration for 1 query: 0.000 sec. (+ 0.047 sec. network) */
/* 0 rows affected, 5,462 rows found. Duration for 1 query: 0.015 sec. (+ 0.032 sec. network) */
Se realiz una consulta con JOIN dentro de las tablas film y film_id de la base de datos sakila y se pudo notar que el tiempo utilizado para la consulta fue de un promedio de 0.015 segundos.
16 CONSULTA SIMILAR SIN UTILIZAR EL JOIN
SELECT title, description, release_year FROM film, film_actor where film.film_id = film_actor.film_id;
/* 0 rows affected, 5,462 rows found. Duration for 1 query: 0.016 sec. (+ 0.031 sec. network) */
/* 0 rows affected, 5,462 rows found. Duration for 1 query: 0.000 sec. (+ 0.047 sec. network) */
Se realiz una consulta sin el uso de JOIN utilizando las tablas film y film_id de la base de datos sakila y se pudo notar que el tiempo utilizado para la consulta fue de unos 0.016 segundos. Comparando las dos consultas se puede observar que la consulta utilizando el JOIN es ms rpida que la consulta sin uso del JOIN, ya que la primera utiliz 0.015 segundos y el segundo 0.016 segundos de tiempo de consulta.
17 5. EJEMPLIFICA 2 FORMAS ADICIONALES PARA MEJORAR EL RENDIMIENTO EN UNA BASE DE DATOS O LA OPTIMIZACIN DE CONSULTAS.
PRIMER EJEMPLO DE LA OPTIMIZACIN DE LAS CONSULTAS.
MEJORAR LAS CONSULTAS A LA BASE DE DATOS Tenga siempre presente las consultas tipo que se van a realizar sobre su base de datos, durante el proceso de diseo. Eso le permitir optimizar al mximo su estructura para obtener los mejores resultados. Cuando se realiza una consulta SELECT, hay que evitar en lo posible el uso del comodn *, e indicar slo los campos imprescindibles que se necesitan. Eso reducir el tamao de la consulta.
18
EVITA SELECT * Cuanta ms informacin se lee de las tablas, ms lenta se ejecutar la peticin SQL. Aumenta el tiempo que toma para las operaciones en disco. Adems cuando el servidor de bases de datos est separado del servidor web, tendrs mayores retrasos de red debido a que la informacin tiene que ser transferida entre ambos servidores. Es un buen hbito especificar siempre las columnas que necesitas cuando ests haciendo un SELECT.
SEGUNDO EJEMPLO DE LA OPTIMIZACIN DE LAS CONSULTAS. Insertar filas mltiples: Es recomendable ejecutar un insert multiple a varios inserts distintos. La sintaxis es: INSERT INTO table (col1, col2) VALUES ('value1', 1), ('value2', 2), ('value3', 3).
19 RESULTADOS: Despus de la aplicacin de cada una de las sentencias en la base de datos sakila podemos mencionar que cada una de las actividades se llevaron correctamente es decir en primer lugar se investig en pginas oficiales de MySQL de acuerdo a cada punto que corresponde se analiz de una manera consistente, para despus llevarlo a la practica en la base de datos, ya que si no investigamos no es posible tener xito en la aplicacin. Como podemos mencionar en el primer ejemplo que corresponda a los ndices pudimos observar que se llev acabo la eleccin de una tabla de la cual se verifico si contena ndices y si tena se eliminaba en la copia para hacer una consulta sin ndices y otra con ndices con el afn de verificar los tiempos y as poder analizar los tiempo y en realidad darnos cuenta que al utilizar los ndices las consultas son ms rpidas ya que como vimos se realiz en un tiempo de 0.0001, cuando en realidad sin ndices lo hizo en 0.0006 esto quiere decir que es recomendable el uso de los dichos. En cuanto a los motores sabemos que en MySQL se manejan diversos motores como MyISAM, InnoDB, MEMORY (HEAP), BDB (BerkeleyDB), en la cual en este ejercicio aplicamos las dos primeras lo que fue es que se encontr una tabla denominada film que contena el motor InnoDB lo que se realizo es que se cambi de manera grfica con el ayudante grafico Heidi y se pas a MyISAM para hacer las pruebas necesarias, y como sabemos se realiz las pruebas y nos dimos cuenta que el motor MyISAM es ms rpido que la InnoDB ya que la MyISAM cada tabla se almacena en disco en tres ficheros lo que hace que las consultas sean ms rpidas. En cuanto al tercer ejercicio se logr con xito ya que se aplic lo que son procedimientos almacenados ya que como sabemos estos son como apartados que los administradores crean para hacer ms agiles las cosas y se quedan guardados para prximas consultas y si nosotros queremos hacer de nuevo esa misma consulta en diferente referencia solo se le llama desde la lnea que se est creando y se pone en funcionamiento, ya que agiliza el tiempo en que se realizan las consultas.
20 En la parte de los JOIN como sabemos es de mucha ayuda ya que como nos menciona las pginas visitadas estos son procesos en donde se utiliza para relacionar varias tablas, y realiza las consultas de una manera rpida ya que si se cuenta con varias tablas al hacer esto los datos repetidos se omiten y as facilitan la bsqueda de los resultados en la aplicacin en la base de datos sakila esta sentencia se llev acabo primero con una instruccin normal y que dio un tiempo de 0.016 segundo y cuando se aplic la sentencia JOIN se obtuvo en un tiempo de 0.015 pero cabe resaltar que esto depende de las maquinas que estemos utilizando y las caractersticas que tienen. En el ltimo ejercicio se trat aspectos de optimizacin y el reforzamiento de cada una de las tcnicas que utilizamos para optimizar los recursos con los que cuenta el funcionamiento y sobre todo el tiempo de reaccin de cada una de las sentencias ya que como sabemos los usuario finales son personas que en ocasiones son impacientes y que no les gusta esperar tanto tiempo para ver su resultado es por eso que se aplican estas tcnicas para el mejoramiento. Es importante mencionar que la investigacin sobre estos temas es de mucha importancia ya que nos ayuda a ser unas personas ms investigadoras para poder resolver nuestros problemas que se nos presente en la vida real, pero es importante seleccionar la informacin que se obtiene por que como sabemos siempre existe una basura y sobre todo lo ms importante sobre estos temas es la practica ya que si no practicamos no podemos aprender a aplicar los conceptos que leemos.
21 CONCLUSIN: En conclusin podemos mencionar que esta prctica fue de mucha ayuda a nosotros ya que aplicamos los conocimientos adquiridos en la materia anterior a taller y fundamentos de base de datos para sacar con xito cada una de las actividades pero sin olvidar que la investigacin tambin juega un papel muy importante en la actualidad ya que si no investigamos y no leemos nada saldr por si sola. En realidad se cumplieron los objetivos encomendados ya que en las diferentes actividades se presentaron problemas pero fuimos capaces como equipo de trabajo resolverlos para presentar un buen trabajo final que corresponde a la ltima activada de la unidad en donde se concentran los aprendizajes adquiridas en las horas de clases. Y no debemos perder de vista que este tipo de actividades son las que nos ayudan da a da a resolver cada una de nuestras dudas que tengamos ya que si no lo encontramos en los libros siempre existirn personas especializadas que nos guan en el aprendizaje de dichos contenidos que son los que van a regirnos en una vida futura laboral, ya que en el mundo empresarial es donde se aplican a diario y es importante que estemos sumamente capacitados para poder resolver cada uno de esos problemas de manera eficiente y eficaz ya que eso habla de nuestra imagen como profesionista y de haya se visualiza el desempeo y las actitudes que tenemos como persona.