Estou revisando uma instalação do SQL Server 2008R2 com grandes problemas de desempenho. Atualmente, estou analisando seus índices e chaves estrangeiras e descobri que nenhuma das tabelas possui chaves estrangeiras especificadas. Ou o aplicativo cuida de toda a lógica de negócios sozinho ou a instalação está errada.
Quanto as chaves estrangeiras afetam o desempenho? Ou eles existem apenas para lógica de negócios? Existem casos em que não ter chaves estrangeiras é uma vantagem? (por exemplo, este sistema suporta SQL Server, Oracle e DB2.)
O link fornecido no comentário do bummi contém informações úteis. Dependendo do que você está fazendo, os FKs podem melhorar o desempenho porque o processador de consultas do SQL Server pode contar com a existência de dados correspondentes em uma tabela.
Em que contexto você está fazendo sua pergunta? Você já tem um problema de desempenho ou está sendo cauteloso?
É melhor adicionar os FKs e desativá-los mais tarde (não os remova, apenas desabilite) do que nunca tê-los.
Chaves estrangeiras são uma ferramenta de integridade referencial, não uma ferramenta de desempenho.
As chaves estrangeiras não são indexadas automaticamente e, se não forem indexadas, isso pode causar problemas de desempenho pelo menos no SQL Server
Para obter mais detalhes, siga o artigo do MSDN Melhorando o desempenho do SQL Server