¿Hay alguna necesidad de agregar un índice a una clave externa en SQL Server 2008 o se maneja de manera predeterminada? En muchas de mis tablas, tengo un FK que apunta a la tabla de cuentas de usuario y la mayoría de las selecciones están hechas con este WHERE Account_FK = id
. Así que el índice podría ser una victoria de rendimiento rápido aquí, espero.Índice en clave externa o no en SQL Server 2008
Respuesta
Como regla, quiere que todas sus claves JOIN
tengan índices, de modo que sí agregue un índice.
Si se trata de una clave compuesta, asegúrese de colocar todos los campos relevantes en la lista de claves de índice en el orden apropiado.
Que yo sepa, las únicas veces que se crea automáticamente un índice en SQL Server es cuando agrega una clave primaria a un montón (tabla no indexada): el PK se asigna automáticamente como la clave del índice agrupado; o, como señala Damien a continuación, cuando agrega una restricción UNIQUE
a un campo o conjunto de campos.
Una razón no tan obvia para agregar un índice al FK es para cuando quiere eliminar una fila en la tabla maestra (su tabla de cuenta de usuario). SQL Server realiza una comprobación de cada relación FK para ver si hay alguna fila que impida la eliminación, y esa comprobación es mucho más rápida con un índice en la columna FK en la (s) tabla (s) secundaria (s).
- 1. Crear una clave externa compuesta en SQL Server 2008
- 2. clave única frente a índice exclusivo en SQL Server 2008
- 3. La adición de clave externa, SQL Server 2008
- 4. ¿Hay alguna forma de convertir un índice no agrupado en una clave principal en una clave agrupada? (SQL Server 2008)
- 5. SQL Server 2008, unirse o no unirse?
- 6. Crear clave externa en SQL Server Management Studio
- 7. SQL 2008 - Restricciones de clave externa en la vista INFORMATION_SCHEMA
- 8. ¿Puedo crear un índice "Covering, Spatial" en SQL Server 2008?
- 9. Relación de clave externa entre dos bases de datos en SQL Server 2008
- 10. SQL Server 2008: averiguar la clave principal/externa en la tabla?
- 11. ¿Cómo puedo encontrar un índice deshabilitado en SQL Server 2008?
- 12. clave externa condicional en SQL
- 13. ¿Cómo puedo soltar una clave externa en SQL Server?
- 14. Índices de SQL Server: ¿qué columnas incluir en el índice?
- 15. Cómo crear una clave primaria compuesta en SQL Server 2008
- 16. LPAD en SQL Server 2008
- 17. Linking Server en SQL Server 2008 R2
- 18. ¿El índice no agrupado de SQL Server 2008 contiene los campos de índice agrupados?
- 19. SQL Server 2008 a SQL Server 2005
- 20. Autoincrement de índice para Microsoft SQL Server 2008 R2
- 21. Índice compuesto agrupado en SQL Server
- 22. SQL Server 2005: Restricción de clave externa anulable
- 23. SQL Server 2008 - HashBytes columna
- 24. SQL Server Management Studio: ¿se agrega confusión de clave externa?
- 25. clave primaria sql e índice
- 26. Combinar dos tablas en SQL Server 2008
- 27. SQL Server 2008 Búsqueda de texto completo en una tabla con una clave primaria compuesta
- 28. clave externa que hace referencia una clave principal 2 columnas en SQL Server
- 29. SQL Server: índice agrupado en datetime, ASC o DESC
- 30. SQL Server 2008 R2 intellisense no funciona
Las restricciones PRIMARY KEY y UNIQUE agregan un índice automáticamente (con el mismo nombre que la restricción, es decir, cómo se implementan), y esto puede ser agrupado o no agrupado (con, como usted dice, el valor predeterminado es crear un índice agrupado si se trata de una restricción PK y aún no hay un índice agrupado). –
@Damien - buen punto, se olvidó de la restricción 'ÚNICA'. – JNK