[firebase-br] Melhor opção para Select

Gladiston Santana gladiston em vidy.com.br
Seg Jan 14 12:19:35 -03 2019


Todos os seus exemplos rodam no servidor, a ideia do SQL é o servidor.
Para processar no lado cliente, você traz um dataset, isto é, os dados de
uma consulta para a aplicação e localmente faz o que precisa ser feito, por
exemplo:
query1.sql.text:='select * from clientes';
query1.open;
while not query1.eof do
begin
  (aqui faço a analise do registro e prossigo para o proximo);
  query1.next;
end;
Label1.Caption:='O saldo foi...';

Cada registro vai travegar pela rede, e é analisado, somado ou processado e
se a maquina cliente for um 486sx poderá levar horas ou dias para terminar.
Para minimizar este impacto, as vezes, programadores usam stored procedures
onde o mesmo codigo acima está dentro da SP que rodará do lado do servidor
e retornará o resultado pronto.
As vantagens desse modelo é que terminais clientes com configurações
modestas se beneficiam da performance no lado servidor.
A desvantagem é que cada BD usa uma linguagem procedural diferente,
inviabilizando a criação de programa que rode com qualquer banco de dados.
Mais tarde, outra tecnologia apareceria que seria programação em n camadas
que permitiria a empresa usar o banco de dados apenas como repositório de
dados, mas fazer com que o loop que mencionei acima ficasse num outro
computador bem potente(podendo até ser o servidor de dados) e retornasse
apenas o resultado ao terminal cliente, portanto multi-banco.
Mas novamente isso criou um problema porque o resultado dos dados voltava
numa especie de XML proprietario que só a tecnologia compativel pudesse
processá-lo, por exemplo, usando o Delphi você usa Datasnap, mas aí os
resultados só falariam com quem é Datasnap compatível. Na pratica só se
cria programas e serviços com Delphi.
Daí outras linguagens criaram um formato para intercambiar dados, um anel
para todos governarem, qualquer linguagens poderia fazer um select e
receber dados sem saber se remetente era o banco de dados ou uma aplicação
que o processou e retornou tudo já mastigado, vinheram programas a-la-carte
como serviços empilhados em TCP/IP e datasets em formatos como json.
Vale lembrar que tudo que mencionei acima, não são concorrentes uma a
outra, mas dependendo do cenário você todas elas dentro de um sistema
maior.
Sim, o mundo ficou complexo de se lidar.

[]´s



Em qui, 10 de jan de 2019 às 10:20, Carlos Andrade <krlosgilson em gmail.com>
escreveu:

> Olá a todos! Depois de umas aulas sobre administração de banco de dados
> na faculdade, surgiu a curiosidade em pesquisar mais sobre como melhorar
> a performance do Servidor durante as consultas ao Firebird. Minha dúvida
> é a seguinte: Qual é a forma mais apropriada e que utilize menos
> recursos de processamento e memória ao realizar Select na aplicação da
> máquina cliente? O "Select" é melhor ficar na Aplicação, criar uma
> "View" ou "Stored Procedure"? Das situações que tenho em mente e que
> venho testando, qual destas seria a melhor opção?
>
> Opção 1:
> Na Aplicação: " select ID, NOME, CPF from TB_CLIENTES "
> (Neste caso, é verdade que o processamento é feito mais na máquina
> cliente, economizando recursos no Servidor?)
>
> Opção 2:
> Na Aplicação: " select ID, NOME, CPF from VW_CLIENTES where (NOME
> starting with 'CARLOS') "
> No Servidor: VW_CLIENTES  -> "select ID, NOME, DATA_NASC, SEXO, RG, CPF,
> FONE1, FONE2 from TB_CLIENTES"
> (Neste caso, o fato de que a View esteja selecionando 8 campos e na
> Aplicação somente 3 campos e com filtro, haveria processamento
> desnecessário no Servidor?)
>
> Opção 3:
> Na Aplicação: " select ID, NOME, CPF from SP_CLIENTES "
> No Servidor: SP_CLIENTES  -> "select ID, NOME, DATA_NASC, SEXO, RG, CPF,
> FONE1, FONE2 from TB_CLIENTES"
> (Neste caso, a SP utiliza mais, menos ou o mesmo recurso de
> processamento que uma View? É mais adequado ou não?)
>
> Existe mais alguma opção que seria mais apropriado que essas três,
> visando claro menos utilização de recurso e processamento do Servidor?
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>


-- 
A Vidy possui um Sistema de Gestão da Qualidade estruturado e com
Certificação ISO 9001 há mais de 10 anos, mantendo seu foco na Qualidade e
na Melhoria Continua.

Em março de2018 migramos com sucesso para a nova versão da ISO 9001.

Somos a única Empresa Brasileira de Engenharia de Laboratórios com
certificação com o Escopo Completo; desde Projetos, Engenharia, Construção,
Fabricação e Instalação de Laboratórios.



Mais detalhes sobre a lista de discussão lista