[quote=AbelBueno]Uma dúvida que tenho: alguém aí já comparou a performance de uma sp com um sql parametrizado? Em situações reais?
Imagino que a maioria dos bancos de dados hoje “compila” uma query parametrizada assim como faz com uma procedure.
Por tanto tenho dúvidas se essa diferença realmente existe e se existir, é tão gritante assim.
Se tiver alguém na equipe que conheça bem JPA, eu apostaria nele.
Ele simplifica demais boa parte do trabalho, que terá tempo para se concentrar nos gargalos, quando aparecerem.
Infelizmente não há arquitetura de caixinha que seja performática de cara.
Além de estudar boas práticas, ver exemplos de sucesso você precisa medir e monitorar sempre.
Faça testes de carga, encontre os problemas e vá corrigindo e aprimorando.[/quote]
Concordo, e alem disso, “as consultas tem que ser rapidas” é muito vago e muito pouco para valer a afirmacao “faca procedures no banco de dados e chame da aplicacao”. Isso so faz sentido em quantidades gigantes de dados ou atualizacoes em batch que poderiam demorar horas para executar. Se a aplicacao for simples isso não vale o esforço.
Sobre a afirmacao “aplicacoes grandes nao mudam de banco” eu posso dizer que ou eu sou azarado ou esta afirmacao nao é tao precisa assim. Eu trabalho com desenvolvimento ha 12 anos e estou participando da minha quarta migração de banco. Uma delas de um sistema muito grande, que já foi concluida, outra de um gigante, que esta congelada porque o sistema esta extremamente amarrado com a base (so em procedures sao mais de 2000, fora triggers e sql especifico), enquanto isso a empresa vai pagando um absurdo de licença do banco de dados quando poderia estar pagando bem mais barato por um produto melhor.
E, desculpe a sinceridade, mas se eu fosse o responsavel por um projeto cuja equipe tivesse o tipo de duvidas que voce esta tendo eu acenderia uma luz de alerta. Talvez o melhor que voce pudesse fazer agora, seria sugerir ao seu chefe a contratação de alguem com mais experiencia para este projeto.
Nesse caso, se voce esta comecando agora, vai poder aprender bastante, na pratica, com alguem que ja conhece e vai evitar cometer varios erros comuns de quem esta comecando com a plataforma Java. Se voce ja tem experiencia em outras linguagens/plataformas e está começando com Java, melhor ainda, assim você já tem uma boa noção de certo e errado e pode dividir a responsabilidade com alguem que conheça melhor as ferramentas com as quais voces vao trabalhar.
Mas se este é um projeto pequeno, sem grandes riscos, talvez fosse uma boa idéia voce experimentar todas as possibilidades pra ver a qual a equipe se adapta melhor.