Navegador de Archivos
Calendario del Blog
General
Tocando los índices I de III
Ya tiene algo de tiempo que estoy inmerso en el diseño y mantenimiento de las bases de datos y ya que estoy en eso me gusta investigar y conocer mejor las herramientas con las que cuento para facilitar mi trabajo. Muchas personas toman las bases de datos a la ligera y creen que con solo emplear un ORM, generadores de código o frameworks que te agilizan[*] el desarrollo es suficiente para tener un producto de calidad.
Es un gran error y puede ser muy doloroso el proceso para aprender que las bases de datos son como tal la base de los sistemas. Sin bases de datos no hay sistemas, porque lo más importante son los datos que existen en un sistema.
Ahora bien, dentro de tantas cosas que existen en la base de datos hay unas estructuras muy importantes llamadas índices. El índice de una base de datos es una estructura de datos que mejora la velocidad de las operaciones, permitiendo un rápido acceso a los registros de una tabla. Debido a esto es necesario conocer a fondo que tanto podemos explotar los índices, en el presente post procuraré mostrar información que sea útil para este fin en SQL Server 2005:
- Tipos de índices
- Crear y borrar índices
- Identificar índices fragmentados
- Reorganizar o reconstruir índices
- Mejores prácticas
Tipos de índices
Clustered: Ordena y almacena las filas de datos de la tabla o vista por orden en función de la clave del índice. Solo puede haber un índice clustered en una tabla, ya que el índice clustered define el orden físico de los datos, esto hace que solo se pueda definir una sola secuencia en la que pueden estar ordenados los datos físicamente.
La sintaxis para crearlo es:
CREATE CLUSTERED INDEX [index_name] ON [Schema_Name].[table_name]
(Nombre_Columna)
WITH (Opciones_Creado) ;
GO
Nonclustered: Puede ser definido en una tabla o vista con un índice clustered.
Las filas del índice se almacenan en el mismo orden que los valores de la clave del índice, pero no se garantiza que las filas de datos estén en un determinado orden a menos que se cree un índice clustered en la tabla.
Su sintaxis es:
CREATE NONCLUSTERED INDEX [index_name] ON [Schema_Name].[table_name]
(Nombre_Columna orden)
WITH (Opciones_Creado) ;
En cualquier nivel de un índice clustered todas las páginas se encuentran ligadas y esto lo diferencia de un índice clustered con un nonclustered.
Unique: Un índice único garantiza que la clave de índice no contenga valores duplicados y, por tanto, cada fila de la tabla o vista es en cierta forma única. Tanto los índices agrupados como los no agrupados pueden ser únicos.
Ejemplo:
CREATE UNIQUE CLUSTERED INDEX IDX_V1
ON Sales.vOrders (OrderDate, ProductID);
GO
CREATE UNIQUE INDEX AK_UnitMeasure_Name
ON Production.UnitMeasure(Name);
GO
Index with included columns: Es un índice no agrupado (nonclustered) que se extiende para incluir columnas sin clave además de las columnas clave.
Full-text: Tipo especial de índice funcional basado en símbolos (token) que crea y mantiene el motor de texto completo de Microsoft para SQL Server. Proporciona la compatibilidad adecuada para búsquedas de texto complejas en datos de cadenas de caracteres.
Spatial: Un índice espacial proporciona la capacidad de realizar de forma más eficaz determinadas operaciones en objetos espaciales (datos espaciales) en una columna del tipo de datos geometry. El índice espacial reduce el número de objetos a los que es necesario aplicar las operaciones espaciales, que son relativamente costosas.
Filtered: Índice nonclustered optimizado, especialmente indicado para cubrir consultas que seleccionan de un subconjunto bien definido de datos. Utiliza un predicado de filtro para indizar una parte de las filas de la tabla. Un índice filtrado bien diseñado puede mejorar el rendimiento de las consultas, reducir los costos de mantenimiento y de almacenamiento del índice en relación con los índices de tabla completa.
XML: Representación dividida y permanente de los objetos XML binarios grandes ( BLOB ) de la columna de tipo de datos xml.
CONTINUARA...
Para saber más.
- Sintaxis para crear índices: http://msdn.microsoft.com/es-es/library/ms188783.aspx
- Organización de índices: http://msdn.microsoft.com/en-us/library/aa964133(SQL.90).aspx
[*] Toma en cuenta que el que te agilicen ciertas tareas no quiere decir que te faciliten el desarrollo, muchas veces es muy costoso el mantenimiento con frameworks
Estadísticas de visitantes








Comentarios Recientes
- Celulares con Wifi en Como escoger el amor de tu vida.
- master en La diferencia entre un amigo y un novio
- Iván Jaimes en Internet Explorer 8 y la vista compatibilidad
- mauro en Internet Explorer 8 y la vista compatibilidad
- Iván Jaimes en ¿Qué hacer para que te valoren más?
- marcela en ¿Qué hacer para que te valoren más?
- Iván Jaimes en
- karyot en Haces ruido o te gusta volar?
- Iver en Haces ruido o te gusta volar?
- leo_on en Haces ruido o te gusta volar?
- Iván Jaimes en Los detalles hacen la diferencia
- linuxman en Los detalles hacen la diferencia
- Marcelo Araújo en Internet Explorer 8 y la vista compatibilidad
- Iván Jaimes en Código con aroma de mujer
- karyot en Código con aroma de mujer
- Profesor Mamelowsky en Código con aroma de mujer
- karyot en Lo sabroso de la vida
- Iván Jaimes en
- Iván Jaimes en Internet Explorer 8 y la vista compatibilidad
- cordoba en Internet Explorer 8 y la vista compatibilidad

Dejar un comentario