Esta é uma discussão que eu e alguns de meus colegas estamos tendo e pensamos que eu viria aqui e veria se havia um consenso geral sobre isso.
Basicamente, resume-se às duas opiniões a seguir sobre chamadas ao banco de dados: 1. Faça uma chamada grande para obter tudo o que for necessário para reduzir o número de chamadas ao banco de dados 2. Faça chamadas separadas menores com base no que é solicitado para reduzir o tamanho de Chamadas de banco de dados
Onde isso entra especialmente em jogo é no código comum. Usaremos o exemplo de uma classe Employee, pois isso é bastante direto.
Digamos que sua classe Employee tenha 10 atributos de valor (nome, sobrenome, contratado, etc.) e depois 2 atributos de classe ... 1 apontando para uma classe Department e depois 1 supervisor que aponta para outro objeto Employee.
Na mentalidade nº 1, você faria uma chamada que retornasse os dados do funcionário, bem como os campos necessários para preencher os atributos de departamento e supervisor ... ou, pelo menos, os campos mais usados nesses subobjetos.
Na mentalidade nº 2, você preencheria apenas o objeto Employee primeiro e, em seguida, preencheria apenas os objetos Department e Supervisor se e quando forem realmente solicitados.
A postura do 2 é bastante direta ... minimize o tamanho das solicitações e quantos objetos de banco de dados precisam ser atingidos cada vez que uma dessas solicitações é feita. A posição 1 é que, mesmo que pudesse ser implementado corretamente, o simples fato de o código ter que fazer várias conexões causará mais pressão na conexão entre o servidor da Web e o banco de dados, em vez de reduzi-lo.
A força motriz por trás disso é que a quantidade de tráfego entre nosso servidor da web e o servidor de banco de dados está ficando fora de controle.