Não, a resposta à minha segunda pergunta não é o inverno.
Prefácio:
Tenho feito muitas pesquisas sobre o Entity Framework recentemente e algo que continua me incomodando é o seu desempenho quando as consultas não são aquecidas, as chamadas consultas frias.
Eu li o artigo de considerações de desempenho para o Entity Framework 5.0. Os autores introduziram o conceito de consultas quentes e frias e como elas diferem, que eu também percebi sem saber de sua existência. Aqui provavelmente vale a pena mencionar que só tenho seis meses de experiência nas minhas costas.
Agora eu sei quais tópicos posso pesquisar adicionalmente, se quiser entender melhor a estrutura em termos de desempenho. Infelizmente, a maioria das informações na Internet está desatualizada ou inchada de subjetividade, daí minha incapacidade de encontrar qualquer informação adicional sobre o tópico de consultas Quentes vs Frias .
Basicamente, o que notei até agora é que sempre que tenho que recompilar ou os resultados de reciclagem, minhas consultas iniciais estão ficando muito lentas. Qualquer leitura de dados subsequente é rápida ( subjetiva ), conforme esperado.
Estaremos migrando para o Windows Server 2012, IIS8 e SQL Server 2012 e, como um Junior, realmente ganhei a oportunidade de testá-los antes do resto. Estou muito feliz por eles introduzirem um módulo de aquecimento que deixará meu aplicativo pronto para a primeira solicitação. No entanto, não tenho certeza de como proceder com o aquecimento do meu Entity Framework.
O que já sei vale a pena fazer:
- Gere minhas visualizações com antecedência, conforme sugerido.
- Por fim, mova meus modelos para uma montagem separada.
O que considero fazer, seguindo o bom senso, provavelmente é uma abordagem errada :
- Fazer leituras de dados fictícios no início do aplicativo para aquecer, gerar e validar os modelos.
Questões:
- Qual seria a melhor abordagem para ter alta disponibilidade em meu Entity Framework a qualquer momento?
- Em quais casos o Entity Framework fica "frio" novamente? (Recompilação, Reciclagem, Reinício IIS etc.)