Estamos diseñando una base de datos en la que necesito considerar algunas restricciones FK (clave externa) . Pero no está limitado a estructuración formal y normalización. Lo intentamos solo si proporciona algún beneficio de escalabilidad o rendimiento de .SQL Server Foreign Key constraint benefits
He estado repasando algunos artículos interesantes y buscando beneficios prácticos en Google. Estos son algunos enlaces:
http://www.mssqltips.com/tip.asp?tip=1296
que quería saber más acerca de los beneficios de FK (aparte de la estructuración formal y el famoso en cascada eliminar \ update).
FK no están 'indexadas' de forma predeterminada, ¿cuáles son las consideraciones al indexar un FK?
Cómo controlar los campos anulables que se asignan como clave foránea - ¿está permitido?
Además de la indexación, ¿esto ayuda a optimizar los planes de ejecución de consultas en SQL-Server?
Sé que hay más, pero preferiría que los expertos hablen sobre esto. Por favor guíame.
He estado manejando algunas bases de datos con unos pocos millones de registros. Mucho se trata de importar datos entre la base de datos y su clon y luego usar ese clon en el entorno de la aplicación web. Bueno, he sabido que mantener los índices PK automáticamente y por lo tanto ayuda a acelerar el acceso a los datos. Ahora, a partir de esta discusión, deduzco que si estoy usando JOINs en mis SQL-Queries, entonces shud use FK e indexe para hacer que las operaciones JOIN sean eficientes. –
Por ejemplo, tengo una tabla OrgMaster (contiene todos los registros Org) luego tengo una tabla BookingMaster (contiene todos los registros de reservas). Ahora, el OrgMaster.Id está siendo 'referenciado' como BookingMaster.OrgId. Entonces, tengo un FK para la relación OrgId-to-Id y lo shud 'index' para un mejor rendimiento de cualquier operación JOIN entre estas dos tablas ... ¿lo obtuve correctamente?
Todo lo anterior, a costa de una sobrecarga adicional de espacio y tiempo (al insertar el registro en la tabla con FK). –
Le solicitaría que me proporcione una lista de puntos para considerar, como - - ¿El FK-index va a consumir demasiado espacio \ tiempo a medida que la tabla crece unos pocos millones de registros? - En ese caso, ¿vale la pena ir por un índice FK "cada vez"? - ¿En qué caso shud NO aplico FK ni lo indexo o no hago nada de eso (por supuesto puedo manejar MUCHO desde la aplicación) - ¿Alguna otra complicada aceleración de JOIN u otras búsquedas tan lentas? –