Sunteți pe pagina 1din 18

MANTENIMIENTO DE INDICES

SQL SERVER 2008


Integrantes:
Narro Capuay, Edgar
Nazario Naveda, Danny
Patilongo Rabinez, Renzhon
Silva Snchez, Telmo
Vsquez Rosario, Ricardo

CONTENIDO
Manejo de ndices
Por qu el uso de ndices en una base de
datos?
Cmo funcionan los ndices?
Ventajas del uso de ndices
Desventajas del uso de ndices
Clustered-indexes
Non-clustered indexes
Ejemplo

Porqu el uso de ndices en una base de


datos?
Los ndices son necesarios para acelerar la bsqueda
de consultas.
Un ndice en una base de datos es similar a un ndice en
un libro.
Desventaja-aumento de espacio en la base de datos.
Desventaja-lentitud de las sentencias INSERT/UPDATE.
2 clases de ndices: CLUSTERED/NON-CLUSTERED.

Cmo funcionan los ndices?


El motor de base de datos de SQL usa los ndices
similar al uso del ndice de un libro.
Cuando un servidor SQL no posee un ndice para
consultas el resultado es similar a un lector que revisa
cada pgina del libro pata buscar un trmino: El motor
de base de datos visita cada fila en una tabla.(table
scan-bsqueda por tabla).

Cmo funcionan los ndices?


Demos un vistazo a la siguiente consulta en la tabla
Products de la base de datos Northwind .Esta consulta
devuelve los productos que se encuentran en un rango
de precios especfico.
SELECT ProductID, ProductName, UnitPrice FROM Products
WHERE (UnitPrice > 12.5) AND (UnitPrice < 14)

Cmo funcionan los ndices?

Cmo funcionan los ndices?


Ahora, creemos una un ndice a travs de una consulta.
La siguiente sentencia determina el nombre del
ndice(IDX_UnitPrice), el nombre de la tabla (Products),
y la columna a indexar(UnitPrice).
CREATE INDEX [IDX_UnitPrice] ON Products (UnitPrice)

Cmo funcionan los ndices?


Para verificar que el ndice se ha creado,usamos el
siguiente procedimiento almacenado para listar los
ndices en la tabla Products.
EXEC sp_helpindex Products

Cmo funcionan los ndices?

Ventajas del uso de ndices


El motor de base de datos usa los ndices para mejorar
el rendimiento en diferentes tipos de consultas. A
continuacin veremos los tipos de consultas que son
ms aptas para la aplicacin de ndices.

Ventajas del uso de ndices


Bsqueda de Registros. El uso ms comn de un ndice es
encontrar un registro o juego de registros. Los ndices ayudan a
las consultas buscar valores que se encuentran dentro de un
rango o un valor en especfico. Veamos las siguientes
consultas poseen un ndice en UnitPrice:
DELETE FROM Products WHERE UnitPrice = 1
UPDATE Products SET Discontinued = 1 WHERE UnitPrice > 15
SELECT * FROM PRODUCTS WHERE UnitPrice BETWEEN 14 AND 16

Ventajas del uso de ndices


Registros ordenados. Cuando se busca un conjunto de datos
ordenado, la base de datos tratar de ubicar un ndice y dejar de
ordenar los resultados durante la ejecucin de la consulta. Para
ordenar un conjunto de datos especificando un campo o campos
usamos la sentencia ORDER BY con el orden ASC(ascendente)o
DESC(descendente). Por ejemplo la siguiente consulta retorna
todos los productos ordenados por precio.
SELECT * FROM Products ORDER BY UnitPrice ASC

Ventajas del uso de ndices


Si no tuviera ndices, la base de datos busca en la tabla Products y
ordena las filas para ejecutar la consulta. Sin embrago, el ndice
creado en UnitPrice (IDX_UnitPrice) ya otorgaba a la base de datos
una lista de precios preordenada.Lo nico que hace la base de
datos es buscar el ndice de la primera entrada hasta el final y
devolver las filas en el orden establecido.
El mismo ndice funciona igual con la siguiente consulta,
escaneando el ndice en reversa()
SELECT * FROM Products ORDER BY UnitPrice DESC

Ventajas del uso de ndices


Registros Agrupados. Se usa la sentencia GROUP BY para
agrupar registros y agregar valores, por ejemplo , contar el
nmero de rdenes dados por un cliente, ordenados por cliente.
La siguiente consulta cuenta el nmero de productos en cada
precio agrupando los registros con el mismo UnitPrice.
SELECT Count(*), UnitPrice FROM Products GROUP BY UnitPrice

La base de datos puede usar el ndice IDX_UnitPrice para retornar


los precios en orden.

Ventajas del uso de ndices


Unique columns. Las columnas que necesitan valores unique
(primary key columns) deben tener un unique index.
CREATE UNIQUE INDEX IDX_ProductName On Products (ProductName)

La consulta anterior no permite valores duplicados en la columna


ProductName , y el ndice es la mejor opcin a usar.

Desventajas del uso de ndices


ndices y Espacio de Disco. Para ver el espacio requerido en una
tabla , usamos el procedimiento almacenado del sistema
sp_spaceused:

EXEC sp_spaceused Orders

Dada la tabla Orders,el procedimiento devolver la cantidad de


espacio usado por la data y todos los ndices relacionados con la
tabla como sigue:
name

rows

reserved

data

index_size

unused

Orders

830

496 KB

160 KB

312 KB

24KB

ndices y modificacin de datos

Clustered index
El orden lgico del ndice coincide con el orden fsico de la fila en la
tabla.
Por ejemplo si CustomerID es usado como clustered index, la data
ser accedida por ese campo.
Un slo clustered index por tabla.
Generalmente ms que rpidos que los non-clustered index
Buenos candidatos para:
Campos usados en sentencias WHERE
Campos usados en ORDER BY y en rangos

Non-clustered index
Se usan punteros para acceder a data especfica.
Se pueden tener ,muchos non-clustered indexes en una tabla.
Por lo general son ms lentos que los clustered index
Se usan datos diferenciados y en valores que no requieren un
rango.

Ejemplo

S-ar putea să vă placă și