Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduccin.- Los ndices son objetos de base de datos diseados para mejorar el
rendimiento de las consultas. En este punto veremos la estructura y el propsito de
los ndices y sus tipos y caractersticas. Se ver como determinar cuando un ndice
es necesario y apropiado, que tipo de ndice usar y como crearlos. Una vez que se
crean los ndices se deben mantener para maximizar la performance de las
consultas, para ello existen varias herramientas que asisten en la tarea de
administracin y mantenimiento de los ndices. La administracin comprende las
tareas de reconstruccin, renombrado, y eliminacin de ndices.
ndices agrupados :
Puede haber solo un ndice agrupado por tabla o vista, dado que estos ndices
ordenan fsicamente la tabla o vista segn la clave del ndice agrupado. Este tipo de
ndices es particularmente eficiente para consultas, dado que los registros de datos
completos (en pginas de datos) son guardados a nivel de hoja del B-tree. El
ordenamiento y la ubicacin de los datos en un ndice agrupado es anlogo al de un
diccionario donde las palabras son ordenadas en forma alfabtica y las definiciones
aparecen junto a las palabras.
ndices Leccin 07
Tipos de ndices .-
ndices agrupados :
Cuando se crea una restriccin PRIMARY KEY en un tabla que no contiene un ndice
agrupado, SQL Server crear uno y utilizar la columna de clave primaria como clave
para el ndice agrupado. Si ya existe un ndice agrupado SQL Server crear un ndice
no agrupado sobre la columna definida con una restriccin PRIMARY KEY. Una
columna definida como la clave primaria es un ndice muy til porque los valores de
la columna estn garantizados que son nicos. ndices sobre columnas de valores
nicos son de menor tamao que los ndices sobre columnas con valores duplicados y
generan estructuras de bsqueda ms eficientes.
ndices agrupados :
Los ndices no se limitan a las restricciones. Se pueden crear ndices sobre cualquier
columna o combinacin de columnas en una tabla o vista. ndices agrupados
aseguran la unicidad internamente. Por lo que, si se crea un ndice agrupado sobre
columnas con valores no nicos SQL Server crea un nico valor sobre las columnas
duplicadas para servir de clave de ordenamiento secundaria. Para evitar el trabajo
adicional requerido para mantener valores nicos sobre columnas duplicadas,
generalmente se generan ndices agrupados sobre columnas con la restriccin
PRIMARY KEY.
ndices Leccin 07
Tipos de ndices .-
ndices no agrupados :
Sobre una tabla o vista se pueden crear 250 ndice no agrupados o 249 ndices no agrupados y un
ndice agrupado. Se debe primero crear un ndice nico agrupado sobre una vista previo a crear
los ndices no agrupados. Esta restriccin no se aplica a las tablas. Un ndice no agrupado es
anlogo a un ndice al final de un libro. Se puede usar el ndice del libro para ubicar las pginas
que contienen una tema del ndice del libro. La base de datos usa los ndices no agrupados para
encontrar registros segn una clave.
Si no existe un ndices agrupado para la tabla, los datos de la tabla se encontrarn desordenados
fsicamente y se dice que la tabla tendr la estructura de montn (heap). Un ndice no agrupado
sobre una tabla montn contiene punteros a las filas de la tabla. Cada entrada en las pginas de
ndice contiene un identificador de fila (RID, row ID). El RID es un puntero a una fila en un
montn, y este consiste de un nmero de pgina, un nmero de archivo y un nmero de ranura.
Si existe un ndice agrupado, las pginas de un ndice no agrupado contienen las claves del
ndice agrupado en vez del RID.
ndices Leccin 07
Obtener Informacin Almacenada (DML) .-
Encontrar los artculos cuyo precio unitario sea superior a 180 y su stock sea
inferior o igual a 100.
SELECT * FROM Articulos
WHERE preunart > 180 AND stockart <= 100
ndices Leccin 07
Obtener Informacin Almacenada (DML) .-
Listar los artculos cuyo precio unitario est comprendido entre 180 y 300.
Las bsquedas cualificadas son las que afectan a datos de ms de una tabla.
Listar todos los proveedores a los que se ha efectuado algn pedido entre el
20/1/2006 y el 15/9/2006.
Informaci
de proceso
ndices Leccin 07
Obtener Informacin Almacenada (DML) .-
Encontrar todos los artculos que han sido pedidos entre el 15/5/2006 y el 30/5/2006.
SELECT DISTINCT Articulos.codigart, descrart
FROM Pedidos INNER JOIN
(Lineas INNER JOIN Articulos ON Lineas.codigart = Articulos.codigart) ON
Pedidos.numped = Lineas.numped
La clusula GROUP permite formar grupos con las filas de datos que tengan valores
iguales para determinados campos.
Listar el importe, sin aplicar el IVA, de los pedidos que tienen ms de una lnea.
Listar los valores de los campos que componen el ndice de unicidad de la tabla Lineas
(numped, numlin), por orden decreciente de n de pedido y de n de lnea.
FROM Lineas