[Cascavel-pm] Arquivo configuracao a parte

Luis Motta Campos monsieur_champs em yahoo.com.br
Terça Agosto 15 15:36:13 PDT 2006


Alceu R. de Freitas Jr. wrote:
> Mas aí você mata a portabilidade da aplicação. :-) Eu não sei até que
> ponto uma view é útil em questão d performance também... não sou um
> DBA. Alguém poderia dar mais uns pitacos?

  Vamos nessa:

  1. Views não são SQL ANSI (bom, são, mas nenhum banco implementa como
especificado). Na prática, quando se fala em portabilidade, para o DBA,
estamos falando de rever todo o código de criação de views.

  2. Views são como "stored SQL" - normalmente, rodam muito mais rápido
do que SQL comum, por que os bancos descentes sabem que aquilo vai ser
usado muitas vezes e tem oportunidade de armazenar informações
estatísticas para fine-tunning do acesso, e não precisa decidir pela
estratégia de acesso em tempo de execução (isso é uma grande vantagem,
acreditem).

  3. Views podem complicar muito a parada, especialmente no quesito
memória. Quando a performance não é tão importante quanto poder fazer
queries (sim, tem casos extremos de gente louca que não se incomoda em
levar 12 horas para fazer uma pergunta, desde que se consiga resposta)
views apenas atrapalham. Elas ocupam muito mais memória do computador, e
normalmente obrigam a múltiplas perguntas ao banco para resolver coisas
simples como um "SELECT id FROM that_view ORDER BY id DESC", já que tem
horas em que múltiplos result-sets intermediários serão criados no banco.

  4. Views podem ser usadas como "interface" para determinados sistemas
ou usuários, dependendo de como suas aplicações são construídas. Também
podem ser usadas para controlar de uma maneira mais fina as permissões
de acesso de determinados usuários: o pessoal de média gerencia que não
precisa ter acesso aos campos de custo de aquisição de determinados
produtos, por exemplo, pode muito bem usar um view para acessar as
outras características e não ter permissões de leitura direta na tabela.
Claro, isto tem muito custo, e pode não ser exatamente uma vantagem.
Você escolhe.

  A única coisa certa que se pode falar sobre views e performance ou
influencia em portabilidade é: medir, medir, medir. Cada caso é um caso,
e cada banco de dados é um banco de dados. Eles podem até ter coisas
parecidas, mas normalmente não gostam de ser tratados como "parte da massa".

> Eu mesmo preciso testar esse camarada. Eu fugi desses mapeadores (até
> dos implementados em Java) justamente por esses problemas de
> performance (e até pelo buzzword  que permeia os programadores dessa 
> linguagem). Só não me parece que o SQL vai sair de campo tão cedo
> assim só por causa de ORMs.

  Eu não acredito que exista qualquer coisa que se possa ofercer neste
campo. Toda vez que preciso construir queries dinamicamente, estou
perdendo tempo fazendo cálculos que um DBA ou Analista deveria ter feito
de cabeça antes da aplicação rodar. Isso quer dizer: eu repito
incansávelmente o trabalho de um DBA/Analista a cada nova pergunta que
vou fazer ao banco de dados, mesmo que a pergunta seja a mesma que eu
fiz 10min atrás.

  Não me parece que exista outra forma de usar bibliotecas de geração de
código SQL dinâmico, e esta, de uma forma muito geral e totalmente
independente de linguagem de programação, me parece muito cara para usar
em sistemas sérios ou que precisem aproveitar mais ou menos bem os
recursos de computação que têm à disposição.

  Claro, se você tem ciclos de máquina sobrando e muita verba no final
do ano para gastar com Ferro Novo, manda ver... ;-)

  Taí os meus pitacos.
  São meio toscos, partidários, mas são meus.
  Se vocês gostarem, são open-source.
  Se não gostarem, me avisem, que a gente senta para beber uma cerveja e
falamos mais ;-)

  Putamplexos!
-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 Luis Motta Campos is Software Engineer, Oracle OCP/DBA, Un*x
 Sysadmin, Member of {Lisbon,São Paulo,Cascavel,Brasil,London}
 Perl Mongers and Perl Fanatic Evangelist
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


Mais detalhes sobre a lista de discussão Cascavel-pm