Li seu artigo Fabio e gostaria de colocar minha visão.
Já trabalhei dos dois lados : desenvolvedor e nos últimos 11 anos como
DBA. Na época que eu era desenvolvedor ainda trabalhávamos com a
arquitetura de 2 camadas, então tínhamos como boa prática dividir o
processamento nas duas camadas (cliente e banco) colocando muita coisa
dentro do banco de dados.
Interagindo com as equipes de desenvolvimento atuais, vejo a clara
tendência de não colocar código dentro do banco de dados, e até entendo
o motivo, porém o problema é que está havendo um exagero nesta forma
de trabalho.
Usar o banco somente como "repositório de dados" causa problemas de
performance, vejo códigos de programas onde uma quantidade grande de
linhas de uma tabela são transferidas para servidor de aplicação para
somente aí serem processadas. Neste caso a perda de performance é muito
grande, I/O de rede é muito mais lento do que processar dentro do banco.
Com o Fabio coloca no seu artigo precisamos usar do bom senso.
Por exemplo no caso da validação do CNPJ e CPF acho melhor fazer-la do
lado do cliente.
No caso de um processamento onde somente com o SQL não consigo executar
tudo que preciso é melhor fazer uma procedure dentro do banco que tenha
um cursor e trabalhe dentro do banco o processamento necessário
retornando para o cliente somente o resultado final. Fazer o cursor no
servidor de aplicação e ficar transferindo várias linhas para ele via
rede não é uma boa solução em termos de performance.
Se vamos trabalhar a arquitetura de 3 camadas (cliente, servidor de
aplicação e servidor de banco) precisamos ser suficientemente
inteligentes para dividir bem o processamento por todas estas camadas de
abstração, programar tudo dentro do servidor de aplicação não é sempre a
melhor solução.
Abraços,
Leandro Henrique Pereira Neto
Administração de bancos de dados
SUPCD/CDSUT/CDSBB
Fábio Telles Rodriguez escreveu:
Mas a validação do CNPJ no lado servidor não acarretaria um processamento a
mais??
qual a vantagem de usar no lado do servidor ??
O tema é para lá de polêmico... mas há um tempo atrás tentei escrever
um pouco sobre o tema:
http://www.midstorm.org/~telles/2006/11/23/inteligncia-em-bancos-de-dados/
Veja o que você acha e conversamos depois, ok?
[]s
Fábio Telles
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
"Esta mensagem do SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO), empresa
pública federal regida pelo disposto na Lei Federal nº 5.615, é enviada exclusivamente a
seu destinatário e pode conter informações confidenciais, protegidas por sigilo
profissional. Sua utilização desautorizada é ilegal e sujeita o infrator às penas da lei.
Se você a recebeu indevidamente, queira, por gentileza, reenviá-la ao emitente,
esclarecendo o equívoco."
"This message from SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO) -- a
government company established under Brazilian law (5.615/70) -- is directed exclusively
to its addressee and may contain confidential data, protected under professional secrecy
rules. Its unauthorized use is illegal and may subject the transgressor to the law's
penalties. If you're not the addressee, please send it back, elucidating the
failure."
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral