Quanto sobrecarga de desempenho do banco de dados quando usando o LINQ?

votos
18

Quanto sobrecarga de desempenho do banco de dados está envolvido com o uso de C # e LINQ em comparação com consultas personalizadas otimizado carregados com principalmente de baixo nível C, ambos com 2008 backend SQL Server?

Estou pensando especificamente aqui de um caso em que você tem um programa bastante-data intensivo e estará fazendo uma atualização de dados ou atualização pelo menos uma vez por tela e terá 50-100 usuários simultâneos.

Publicado 07/08/2008 em 15:38
fonte usuário
Em outras línguas...                            


2 respostas

votos
2

Graças Stu. linha de fundo parece ser que LINQ to SQL, provavelmente não tem uma sobrecarga significativa o desempenho do banco de dados com as versões mais recentes, se você é capaz de usar uma seleção compilado, e as funções mais lentas de atualização são susceptíveis de ser mais rápido se você tiver um realmente afiada especialista em fazer a maior parte da codificação.

Respondeu 07/08/2008 em 16:02
fonte usuário

votos
1

Na minha experiência, a sobrecarga é mínima, desde que a pessoa que escreve as consultas sabe o que ele / ela está fazendo, e tomar as precauções habituais para assegurar as consultas geradas são ideais, que os índices necessários estão no lugar etc etc. Em outras palavras, o impacto da base de dados deve ser a mesma; há uma sobrecarga mínima mas geralmente insignificante no lado da aplicação.

Dito isto ... há uma exceção a esta; se uma única consulta gera vários agregados do prestador L2S converte-o para um grande consulta com uma sub-consulta por agregado. Para uma grande mesa isso pode ter um impacto significativo I / O como o custo db I / O para a consulta cresce em magnitude para cada novo agregado na consulta.

A solução para o que é, naturalmente, para deslocar os agregados para proc armazenado ou vista. Matt Warren tem um código de exemplo para um provedor de consulta alternativa que traduzir esse tipo de consultas de uma forma mais eficiente.

Recursos:

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=334211

http://blogs.msdn.com/mattwar/archive/2008/07/08/linq-building-an-iqueryable-provider-part-x.aspx

Respondeu 16/09/2008 em 08:14
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more