rocedimentos armazenados do @Entity Framework vs SQL gera

Eu usei a estrutura da entidade em alguns projetos. Em todos os projetos, usei procedimentos armazenados mapeados para as entidades por causa dos benefícios conhecidos dos procedimentos armazenados - segurança, manutenção etc. No entanto, 99% dos procedimentos armazenados são procedimentos armazenados CRUD básicos. Parece que isso nega um dos principais recursos que economizam tempo do Entity Framework - geração SQL.

Li alguns dos argumentos sobre procedimentos armazenados versus SQL gerado a partir do Entity Framework. Embora o uso de CRUD SPs seja melhor para segurança, e o SQL gerado pelo EF geralmente seja mais complexo do que o necessário, ele realmente compra alguma coisa em termos de desempenho ou manutenção para usar SPs?

Aqui está o que eu acredito:

Na maioria das vezes, modificar um SP requer a atualização do modelo de dados de qualquer maneira. Portanto, não está comprando muito em termos de manutenção.Para aplicativos Web, a conexão com o banco de dados usa um único ID de usuário específico para o aplicativo. Portanto, os usuários nem sequer têm acesso direto ao banco de dados. Isso reduz o benefício de segurança. Para um aplicativo pequeno, o desempenho ligeiramente reduzido do uso do SQL gerado provavelmente não seria um problema. Para aplicações críticas de alto volume e desempenho, a EF seria uma escolha sábia? Além disso, as instruções de inserção / atualização / exclusão geradas pela EF são realmente tão ruins assi O envio de cada atributo para um procedimento armazenado tem suas próprias penalidades de desempenho, enquanto o código gerado pelo EF envia apenas os atributos que foram realmente alterados. Ao fazer atualizações em tabelas grandes, o aumento do tráfego de rede e a sobrecarga da atualização de todos os atributos provavelmente negam o benefício de desempenho dos procedimentos armazenado

Com isso dito, minhas perguntas específicas são:

As minhas crenças listadas acima estão corretas? A idéia de sempre usar SPs é algo "antigo" agora que os ORMs estão ganhando popularidade? Na sua experiência, qual é o melhor caminho a seguir com os SPs de mapeamento EF para todas as inserções / atualizações / exclusões ou usando o SQL gerado por EF para operações CRUD e usando apenas SPs para coisas mais complexas?

questionAnswers(5)

yourAnswerToTheQuestion