0% encontró este documento útil (0 votos)
19 vistas5 páginas

Crear Índices

Este documento describe las tareas y consideraciones para crear índices en SQL Server, incluyendo diseñar el índice, determinar el método de creación, y crear el índice teniendo en cuenta factores como el tamaño de la tabla y el rendimiento.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
19 vistas5 páginas

Crear Índices

Este documento describe las tareas y consideraciones para crear índices en SQL Server, incluyendo diseñar el índice, determinar el método de creación, y crear el índice teniendo en cuenta factores como el tamaño de la tabla y el rendimiento.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 5

Crear ndices (motor de

base de datos)
SQL Server 2008 R2
Otras versiones

Personas que lo han encontrado til: 4 de 7 - Valorar este tema


En este tema se describen las principales tareas de creacin de ndices y se
proporcionan las directrices de rendimiento e implementacin que hay que tener en
cuenta antes de crear un ndice.

Tareas de creacin de ndices

Las siguientes tareas forman parte de la estrategia recomendada para crear ndices:
1. Disear el ndice.
El diseo de ndices es una tarea crtica. El diseo de ndices incluye la
determinacin de las columnas que se utilizarn, la seleccin del tipo de ndice
(por ejemplo, agrupado o no agrupado), la seleccin de opciones de ndice
adecuadas y la determinacin de grupos de archivos o de la ubicacin de
esquemas de particin. Para obtener ms informacin, vea Disear ndices.
2. Determinar el mejor mtodo de creacin. Los ndices se crean de las siguientes
maneras:
o Definiendo una restriccin PRIMARY KEY o UNIQUE en una columna
mediante CREATE TABLE o ALTER TABLE
SQL Server Database Engine (Motor de base de datos de SQL Server)
crea automticamente un ndice nico para hacer cumplir los requisitos
de unicidad de una restriccin PRIMARY KEY o UNIQUE. De forma
predeterminada se crea un ndice clster nico para hacer cumplir una
restriccin PRIMARY KEY, a menos que ya exista un ndice clster en la
tabla o que usted especifique un ndice no clster nico. De forma
predeterminada se crea un ndice nico no clster para hacer cumplir
una restriccin UNIQUE a menos que se especifique de explcitamente un
ndice clster nico y no exista un ndice clster en la tabla.
Tambin se pueden especificar las opciones de ndice, la ubicacin del
ndice, el grupo de archivos o el esquema de la particin.
Un ndice creado como parte de una restriccin PRIMARY KEY o UNIQUE
recibe automticamente el mismo nombre que la restriccin. Para
obtener ms informacin, vea Restricciones PRIMARY KEY y Restricciones
UNIQUE.
o Creando un ndice independiente de una restriccin utilizando la
instruccin CREATE INDEX , o el cuadro de dilogo Nuevo ndice en el
Explorador de objetos de SQL Server Management Studio

Debe especificar el nombre del ndice, de la tabla y de las columnas a las


que se aplica el ndice. Tambin se pueden especificar las opciones de
ndice, la ubicacin del ndice, el grupo de archivos o el esquema de la
particin. De forma predeterminada, se crea un ndice que no es nico y
no est agrupado si no se especifican las opciones nicas o agrupadas.
Para crear un ndice filtrado, use la clusula opcional WHERE. Para
obtener ms informacin, vea Directrices generales para disear ndices
filtrados.
3. Crear el ndice.
Un factor importante que debe tenerse en cuenta es si el ndice se crear en
una tabla vaca o en una tabla con datos. La creacin de un ndice en una tabla
vaca no tiene implicaciones de rendimiento en el momento de creacin del
ndice; sin embargo, el rendimiento se ver afectado cuando se agreguen los
datos a la tabla.
La creacin de ndices en tablas grandes debe planearse con cuidado para que
el rendimiento de la base de datos no se vea afectado. La mejor manera de
crear ndices en tablas de gran tamao es empezar con el ndice clster y, a
continuacin, generar los ndices no clster. Considere la posibilidad de
establecer la opcin ONLINE en ON cuando cree ndices en tablas existentes.
Cuando se establece en ON, los bloqueos a largo plazo no se retienen, lo que
permite que continen consultas o actualizaciones a la tabla subyacente. Para
obtener ms informacin, vea Realizar operaciones de ndices en lnea.

Consideraciones de implementacin
En la siguiente tabla se enumeran los valores mximos que se aplican a los ndices
clster, no clster, espaciales, filtrados y XML. A menos que se especifique lo contrario,
las limitaciones se aplican a todos los tipos de ndices.

Lmites de ndice mximos

Valor

Informacin adicional

ndices clster por tabla

ndices no clster por tabla

999

Incluye ndices no clster creados por restricciones PRIM


pero no ndices XML.

ndices XML por tabla

249

Incluye ndices XML principales y secundarios en column


ndices en columnas del tipo de datos XML

ndices espaciales por tabla

249

Trabajar con ndices espaciales (motor de base de datos)

Nmero de columnas de clave por


ndice

16*

El ndice clster est limitado a 15 columnas si la tabla tam


ndice espacial.
Tamao mximo de las claves de ndices.

Tamao del registro de clave de


ndice

900
bytes*

No se aplica a ndices XML ni a ndices espaciales.


Para que una tabla admita el uso de ndices espaciales, el t
es de 895 bytes.

Tamao mximo de las claves de ndices.


*Puede evitar limitaciones de tamao de registro y de columna de clave de ndice de
ndices no clster incluyendo columnas sin clave en el ndice. Para obtener ms
informacin, vea ndice con columnas incluidas.

Tipos de datos
Generalmente, se puede indizar cualquier columna de una tabla o de una vista. En la
siguiente tabla se muestran todos los tipos de datos que tienen una participacin de
ndice restringida.

Tipo de datos

Participacin de ndi

Tipo definido por el usuario CLR

Se puede indizar si el
binario.

Tipos de datos de objetos grandes


(LOB): image, ntext,text, varchar(max),nvarchar(max),varbinary(max) y xml

No pueden ser una co


No obstante, una colu
columna de clave en u
XML secundario o pri
Pueden participar com
(incluidas) en un ndic
excepto image, ntext
Pueden participar si so
de columna calculada

Columnas calculadas

No se pueden indizar.
calculadas definidas c
mtodos de una colum
un usuario CLR, mien
marquen como determ
Las columnas calculad
tipos de datos LOB se
columna con clave o s
de datos de columna c
como columna de clav
sin clave.

Columnas de Varchar de insercin no consecutiva

La clave de ndice de
puede contener colum
existentes en la unidad
ROW_OVERFLOW_
clster se crea en una
datos existentes estn

asignacin IN_ROW_
insercin o actualizac
columna que constitui
consecutivas producir
geometry

Se puede indizar con v

Consideraciones adicionales
A continuacin se ofrecen algunas consideraciones adicionales para crear un ndice:
Puede crear un ndice si tiene el permiso CONTROL o ALTER en la tabla.
Cuando se crea, el ndice se habilita automticamente y est disponible para su
uso. Puede quitar el acceso a un ndice deshabilitndolo. Para obtener ms
informacin, vea Deshabilitar ndices.

Requisitos de espacio en disco

El espacio en disco necesario para almacenar el ndice depende de los siguientes


factores:
El tamao de cada fila de datos de la tabla y el nmero de filas por pgina. As
se determina el nmero de pginas de datos que se deben leer del disco para
crear el ndice.
Las columnas del ndice y los tipos de datos utilizados. As se determina el
nmero de pginas de ndice que se deben escribir en disco. Para obtener ms
informacin, vea Estimar el tamao de un ndice clster y Estimar el tamao de
un ndice no clster.
Espacio temporal en disco necesario durante el proceso de creacin del ndice.
Para obtener ms informacin, vea Determinar requisitos de espacio en disco
del ndice.

Consideraciones de rendimiento

El tiempo que ocupa la creacin fsica de un ndice depende en gran medida del
subsistema de disco. Los factores importantes que se deben tener en cuenta son:
El modelo de recuperacin de la base de datos. El modelo de recuperacin
optimizado para cargas masivas de registros proporciona un rendimiento mucho
mayor y un consumo de espacio de registro ms reducido que la recuperacin
completa durante la operacin de creacin del ndice. Sin embargo, la
recuperacin por medio de registros de operaciones masivas reduce la
flexibilidad para la recuperacin a un momento dado. Para obtener ms
informacin, vea Elegir un modelo de recuperacin para las operaciones de
ndice.
RAID (matriz redundante de discos econmicos) utilizada para almacenar los
archivos de base de datos y del registro de transacciones. Normalmente, los
niveles de RAID que utilizan la creacin de bandas tienen un ancho de banda de
E/S mejor.
Nmero de discos de la matriz de discos, si se utiliza RAID. Ms unidades en la
matriz aumentan las tasas de transferencia de datos proporcionalmente.
Dnde se almacenan las ordenaciones intermedias de los datos. Si utiliza la
opcin SORT_IN_TEMPDB puede reducir el tiempo necesario para crear un ndice

Para

Para

Para

cuandotempdb se encuentra en un conjunto de discos diferente que la base de


datos del usuario. Para obtener ms informacin, vea tempdb y la creacin de
ndices.
Creacin del ndice en lnea o sin conexin.
Cuando se crea un ndice sin conexin (valor predeterminado), los bloqueos
exclusivos se mantienen en la tabla subyacente hasta que la transaccin que
crea el ndice se ha completado. La tabla no est accesible para los usuarios
mientras se crea el ndice.
Excepto en el caso de los ndices XML y los ndices espaciales, es posible
especificar que se cree el ndice en lnea. Cuando la opcin en lnea est
establecida en ON, los bloqueos de la tabla a largo plazo no se conservan, lo
que permite que las consultas o actualizaciones a la tabla subyacente continen
mientras se crea el ndice. Aunque recomendamos operaciones de ndice en
lnea, se debe evaluar el entorno y los requisitos especficos. Puede ser mejor
ejecutar operaciones de ndice sin conexin. Al hacerlo as, los usuarios tienen
acceso restringido a los datos durante la operacin, pero la operacin acaba con
mayor rapidez y utiliza menos recursos. Para obtener ms informacin,
vea Realizar operaciones de ndices en lnea.
crear una restriccin PRIMARY KEY o UNIQUE al crear una tabla
CREATE TABLE
crear una restriccin PRIMARY KEY o UNIQUE en una tabla existente
ALTER TABLE
crear un ndice
CREATE INDEX
CREATE SPATIAL INDEX (Transact-SQL)
CREATE XML INDEX (Transact-SQL)
Cmo crear un ndice espacial (SQL Server Management Studio)

También podría gustarte