A decir verdad, no solo no verá mucha pérdida de rendimiento por tener restricciones de clave externa en la base de datos, sino que verá mejoras de rendimiento. El optimizador de consultas de SQL Server se basa en el concepto de claves primarias y externas, así como en otros tipos de restricciones de datos. Si estos están implementados y aplicados, el optimizador puede aprovecharlos para obtener un mejor rendimiento. Aquí hay una publicación de blog con un ejemplo simple que lo muestra en acción.
Si se encuentra en un caso extremo donde realmente tiene más inserciones que lecturas (y las actualizaciones y eliminaciones requieren lecturas, por lo que generalmente terminan agregando al recuento de lecturas), entonces podría tener sentido eliminar las restricciones de los datos para el rendimiento, tal vez . Pero como la gran mayoría de las bases de datos están orientadas a la lectura, está sacrificando el rendimiento, no mejorando.
Y nada de esto menciona el hecho de que la integridad de los datos se maneja mejor en la base de datos, ya que solo tiene que crearla una vez y, como si hiciera todo el trabajo en código, es posible que tenga que hacerlo varias veces para múltiples aplicaciones (a menos que diseñe su capa de acceso a datos con cuidado y requiere que cada aplicación acceda a la base de datos para pasar por esa misma capa).
Si está utilizando un sistema de base de datos relacional, digo, ¿por qué no usarlo realmente? Si no necesita datos relacionales, vaya con Hadoop u otra cosa.