[firebase-br] RES: Maneira mais rápida... SQL ou CÓDIGO ?

Rodrigo A. de Freitas rodrigo em solucoeseinformatica.com.br
Qua Ago 5 17:53:04 -03 2009


Kelsie,

O banco também não faz milagres. Manipular 80 milhões de registros do
primeiro ao último é algo que exigirá uma quantidade GIGANTESCA de tempo
para rodar.

Imagine que você faça uma stored procedure correndo do primeiro ao último
registro, executando sua função check_id, que pode ser uma outra SP ou uma
UDF. Se o banco levar um milissegundo por registro, você teria o seguinte:

80.000.000 de registros x 1 milissegundo = 80.000 segundos = 22,22 horas de
processamento!

Respondendo sua pergunta, de qualquer forma fazer isso internamente no banco
seria mais rápido. Se você desenvolvesse essa rotina via código em uma
linguagem de programação, você teria o tempo adicional de se fazer o fetch
dos registros pra memória da sua máquina para em seguida executar o seu
teste.


[]'s


Rodrigo A. de Freitas
Análise & Desenvolvimento

Soluções & Informática

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de //---- Kelsie.Z.Marshall ----//
Enviada em: 5 de agosto de 2009 16:59
Para: lista em firebase.com.br
Assunto: [firebase-br] Maneira mais rápida... SQL ou CÓDIGO ?

Oi Pessoal

Meu primeiro post nesta lista.

Estou testando os limites do FB.

Criei uma enorme tabela com 80.000.000 de registro e inseri dados 
aleatórios.

ID VARCHAR(20)
NOME VARCHAR(120)

Agora eu preciso fazer um calculo para verificar se a ID está correta em 
cada registro.

Tentei primeiro fazer através do código mas levou muito tempo 
(impraticável).

Meu código:

CHECK_ID(ID)
{
   ...varios calculos...
   return valido ou nao valido
}

  DM->IBQueryGen->First();
  while(!DM->IBQueryGen->Eof)
  {
     if(CHECK_ID(DM->IBQueryGen->FieldByName("ID")->AsString)
       ct_valid++;
     else
      ct_invalid++;
     DM->IBQueryGen->Next();
  }

Existe uma maneira de fazer isto via SQL com procedure, trigger ou UDF, 
ainda estou meio perdido nos conceitos.

Thanks

Kelsie 



______________________________________________
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://firebase.com.br/pesquisa
Nenhum vírus encontrado nessa mensagem recebida.
Verificado por AVG - www.avgbrasil.com.br 
Versão: 8.5.392 / Banco de dados de vírus: 270.13.44/2283 - Data de
Lançamento: 08/05/09 05:57:00





Mais detalhes sobre a lista de discussão lista