Está en la página 1de 9

Univer

sidad
Facult
ad De
Ingenie

CONOCIENDO EL GESTOR:

Autores:
Andy Hirvyn Rucoba Reategui
Karen Alely Chamaya Guevara
Marco Israel Calderón García
Oliver Chávez Fasabi
Edwin Campos Sánchez

2022-I 1
Contenido
1. Rendimiento....................................................................................................................................................3
1.1. Configuración del límite de cantidad de datos a mostrarse......................................................................3
1.2. Rendimiento con Indexes.........................................................................................................................4
Consulta 1........................................................................................................................................................4
Ejecutando sin Index...................................................................................................................................4
Ejecutando con Index: Creando índices......................................................................................................5
Consulta 2........................................................................................................................................................7
Ejecutando sin Index...................................................................................................................................7
Ejecutando con Index: Creando índices......................................................................................................8

2
1. Rendimiento
Para hacer este ejemplo usaremos la base de datos BDMigracion
Especificaciones de la computadora donde se realizará el Rendimiento

1.1. Configuración del límite de cantidad de datos a mostrarse


Sybase por defecto muestra los 500 primeros datos y para demostrar el Rendimiento usaremos
una Base de datos que posee millones de datos. Es por ello que para que nos muestre todos los
datos completos de la consulta a realizarse, haremos la siguiente configuración.
Después de conectarse a la base de datos, ingresamos a la ventana interactiva de instrucciones
SQL. Acudimos al apartado de Tools (herramientas) seguido de Options (opciones)

En Category (categorías) damos clic en SQL Anywhere. En Results (resultados) vamos a la barra
desplegable Maximun number of rows to display (Número máximo de filas para mostrar) a lo cual
seleccionamos All rows (todas las filas).

3
1.2. Rendimiento con Indexes
Consulta 1
SELECT ventas.codalmacen,
ventas.serie,
ventas.numdocumento,
ventas.fechaventa,
cliente.nombrerazonsocial,
detalleventas.codproducto, producto.descripcion, detalleventas.cantidad,
detalleventas.precio,detalleventas.subTotal
FROM ventas INNER JOIN
cliente ON ventas.codcliente = cliente.codcliente INNER JOIN
detalleventas ON ventas.transVenta = detalleventas.transventa INNER JOIN
producto ON detalleventas.codproducto = producto.codproducto
WHERE (ventas.fechaventa>='2013/01/01' AND ventas.fechaventa<='2016/12/31') AND
(producto.descripcion LIKE '%COCA%' OR producto.descripcion LIKE '%INCA%')
ORDER BY ventas.fechaventa, producto.descripcion
GO
Para el manejo de fechas en las consultas en Sybase usa el formato YMD. Primero especifica
el Año seguido del Mes y finalmente el día.
Ejecutando sin Index

4
Tendremos en cuenta la parte donde nos indica Excution time (el tiempo de ejecución)
ya que después comparemos. Aquí vemos que ha ejecutado 1 034 013 líneas en 1 minuto
con 50 segundos.

Si volvemos a ejecutar la misma consulta el tiempo será menor ¿Por qué? Al haber
ejecutado la primera vez ya se guardó en la memoria cache. Entonces para evitar que la
memoria cache afecte los resultados, desconectaremos la base de datos. Ya que Sybase no
cuenta con una instrucción SQL para liberar memoria caché.
Ejecutando con Index: Creando índices
Para optimizar con los Indexes tenemos la siguiente instrucción
CREATE INDEX index_name ON table_name (column_name)
En index_name indicamos el nombre del index que estamos creando seguido de table_name,
aquí indicamos el nombre de la tabla con la columna a la cual aplicaremos el index
¿A qué campos aplicar el index?
Para aplicar el index tenemos que tener en cuenta los campos que están en el WHERE, ya
que aquí está la condición que hace más rápida la búsqueda. Entonces el índice hace un
ordenamiento por esa columna y eso toma el where para hacerlo más rápido, si encuentra
un índice en ese campo, se va al índice, ubica en que posición está y lo muestra.
Para la consulta 1, creamos los siguientes dos index en los campos que están dentro del where
CREATE INDEX Index_2 ON Ventas(fechaventa)
CREATE INDEX Index_3 ON producto(descripcion)

5
Ahora vemos si se crearon los index, vamos a las tablas y observamos que en la tabla ventas se
creó el Index_2 y en la tabla producto el Index_3

Para verificar si se creó, desconectamos la base de datos por unos minutos, luego volvemos a
entrar y ejecutamos la instrucción de la consulta. Aquí podemos observar el Rendimiento
después de crear los indexes.

6
Para realizar otra consulta en la misma base de datos, asegurarse que no exista creado ningún
índice más que su llave primaria y llaves foráneas, de lo contrario borrarlo ya sea con instrucción
SQL o gráficamente.
Consulta 2
SELECT V.fechaventa, V.serie+'-'+ V.numdocumento AS 'Comprobante', C.nombrerazonsocial
AS 'Cliente', DV.codproducto, P.descripcion AS 'Producto',UM.descripcion AS 'U/M',
DV.cantidad, DV.precio, DV.subtotal
FROM Ventas V INNER JOIN
DetalleVentas DV ON (V.transventa = DV.transventa) INNER JOIN
UnidadVenta UV ON (DV.codproducto= UV.codproducto AND
DV.codunidadmedida=UV.codunidadmedida) INNER JOIN
Producto P ON (UV.codproducto=P.codproducto) INNER JOIN
UnidadMedida UM ON (UV.codunidadmedida=UM.codunidadmedida) INNER JOIN
Cliente C ON (V.codcliente=C.codcliente)
WHERE V.fechaventa>='2014/10/02' AND V.codalmacen IN ('001','002')
ORDER BY V.fechaventa
GO
Ejecutando sin Index

7
Ejecutando con Index: Creando índices
En este caso aplicaremos solamente un índice porque la única parte en la cual no está
amarrado a un índice es el campo fechaventa y esta fecha de venta tiene más
diversificación, es decir tiene más valores por lo que es favorable aplicarle un índice.
CREATE INDEX Index_1 ON Ventas(fechaventa)

Ahora vemos si se crearon los index, vamos a las tablas y observamos que en la tabla ventas se
creó el Index_1

8
Para verificar el rendimiento, desconectamos la base de datos por unos minutos, luego volvemos
a entrar y ejecutamos la instrucción de la consulta. Aquí podemos observar el Rendimiento
después de haber creado el índex, ya que el tiempo de ejecución disminuyó en 18.4 segundos.

También podría gustarte