Aclaracion sobre indices unicos y restricciones unique

09/09/2008 - 18:14 por Pedro | Informe spam
He leído esto en los BOL en la seccion "Crear índices únicos":

"La creación de un índice único garantiza el fracaso de cualquier intento de
duplicar valores de clave. No existen diferencias significativas entre crear
una restricción UNIQUE y crear un índice único que es independiente de una
restricción. La validación de datos se produce de igual modo y el
optimizador de consultas no distingue entre un índice único creado mediante
una restricción o creado manualmente. Sin embargo, debe crearse una
restricción UNIQUE en la columna cuando el objetivo es la integridad de los
datos. Esto deja claro el objetivo del índice."

Eso quiere decir que si se crea la unicidad por una restricción unique
también crea el índice ? es lo mismo entonces ?

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera (MVP)
09/09/2008 - 19:14 | Informe spam
Sí, si usted define una restricción UNIQUE, entonces SQL Server crea un
índice UNIQUE para hacer cumplir con la restricción.

Gustavo Larriera, Microsoft MVP
http://www.linkedin.com/in/gustavolarriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Pedro" wrote:

He leído esto en los BOL en la seccion "Crear índices únicos":

"La creación de un índice único garantiza el fracaso de cualquier intento de
duplicar valores de clave. No existen diferencias significativas entre crear
una restricción UNIQUE y crear un índice único que es independiente de una
restricción. La validación de datos se produce de igual modo y el
optimizador de consultas no distingue entre un índice único creado mediante
una restricción o creado manualmente. Sin embargo, debe crearse una
restricción UNIQUE en la columna cuando el objetivo es la integridad de los
datos. Esto deja claro el objetivo del índice."

Eso quiere decir que si se crea la unicidad por una restricción unique
también crea el índice ? es lo mismo entonces ?





Respuesta Responder a este mensaje
#2 Alejandro Mesa
09/09/2008 - 19:34 | Informe spam
Pedro,

Ademas de lo dicho por Gustavo, quiero agregar que una restriccion de
unicidad se puede ver como parte de la definicion de metadata o esquema de
esa tabla. Por ejemplo, tambien podemos crear un indice unico sobre una
columna, o varias, que no acepta NULL, lo que lo hace similar a tener una
clave primaria, pero preferible usar una restriccion de clave primaria a usar
un indice unico por la columna o columnas.

El indice unico creado por SQL Server para forzar las restricciones de
unicidad y/o clave primaria, es la forma fisica en que implementan esas
restricciones.

AMB


"Pedro" wrote:

He leído esto en los BOL en la seccion "Crear índices únicos":

"La creación de un índice único garantiza el fracaso de cualquier intento de
duplicar valores de clave. No existen diferencias significativas entre crear
una restricción UNIQUE y crear un índice único que es independiente de una
restricción. La validación de datos se produce de igual modo y el
optimizador de consultas no distingue entre un índice único creado mediante
una restricción o creado manualmente. Sin embargo, debe crearse una
restricción UNIQUE en la columna cuando el objetivo es la integridad de los
datos. Esto deja claro el objetivo del índice."

Eso quiere decir que si se crea la unicidad por una restricción unique
también crea el índice ? es lo mismo entonces ?





Respuesta Responder a este mensaje
#3 Carlos M. Calvelo
09/09/2008 - 20:49 | Informe spam
Hola Pedro,

On 9 sep, 18:14, "Pedro" wrote:
He leído esto en los BOL en la seccion "Crear índices únicos":

"La creación de un índice único garantiza el fracaso de cualquier intento de
duplicar valores de clave. No existen diferencias significativas entre crear
una restricción UNIQUE y crear un índice único que es independiente de una
restricción. La validación de datos se produce de igual modo y el
optimizador de consultas no distingue entre un índice único creado mediante
una restricción o creado manualmente. Sin embargo, debe crearse una
restricción UNIQUE en la columna cuando el objetivo es la integridad de los
datos. Esto deja claro el objetivo del índice."

Eso quiere decir que si se crea la unicidad por una restricción unique
también crea el índice ?  es lo mismo entonces ?




Solo quiero hacer hincapié en algo que en realidad ya te lo
dijo Alejandro; pero para que no se te escape, porque es
importante.

Una restricción UNIQUE es una restricción a nivel lógico.
Un index es un mecanismo a nivel físico (eficiencia) y
una forma de implementar esas restricciones.

Saludos,
Carlos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida