none
Total de linhas com ou sem COUNT()? RRS feed

  • Pergunta

  • Boa tarde, pessoal.

     

    Mais uma duvida que estou tendo, qual seria a melhor alternativa em uma tabela, que esta relacionado com 5 tabelas, ter campos que me indicam o total de linhas de cada uma das 5 tabelas, para que eu possa estar verificando se esta faltando algum registro em umas das tabelas e assim atualizo ou faço a verificaçao utilizando o COUNT() em cada tabela?

     

     

    Obs.: Nao sei se e alguma configuraçao do site ou e meu browser, mas nao estou conseguindo colocar acento nas mensagens. Talvez seja pelo fato do meu windows XP estar em ingles!

    segunda-feira, 20 de outubro de 2008 19:39

Respostas

  • Ok, obrigado pelas sugestoes, mas mesmo assim utilizaria o COUNT() para recuperar o total de leituras de cada serviço ao inves de ter campos que me indicam o total de leituras de cada serviço?

    terça-feira, 21 de outubro de 2008 13:23

Todas as Respostas

  • Olá Marcelo,

     

    Não entendi o seu problema, você poderia ser mais claro ou exemplificar ?

     

    [ ]s,

     

    Gustavo

     

    segunda-feira, 20 de outubro de 2008 19:54
  •  

    Marcelo,

     

    Você pode criar uma trigger de Insert e Delete para cada tabela sua. Quando ocorrer estes eventos você realiza um count na tabela afetada e atualiza na sua tabela de relacionamento.

     

    []'s

     

    Rafael Krisller

     

    terça-feira, 21 de outubro de 2008 10:52
  • Bom dia,

    Gustavo.

     

    Vou tentar explicar melhor, eu recebo informaçoes de um equipamento que registra leituras de varios serviços por dia e nisso, eu posso receber os dados pela manha e no outro dia eu tenho que receber as leituras restantes do dia anterior, alem do dia atual. Entao eu tenho que verificar se todos os serviços estao atualizados. Como o equipamento nao me envia o total de leituras de cada serviço, eu terei que fazer um COUNT() em cada tabela para saber o total de leituras de cada dia e assim comparo se aquele dia esta atualizado. Ou eu posso armazenar o total de leituras de cada serviço, criando novos campos na tabela historico do dia.

    Um exemplo:

    Tabela Historico do dia:

    id        data                  

    1         20/10/2008

     

    Tabela Serviço A        

    fk_id    horario     dados

    1          08:10      ...

    1          08:30      ...

    1          09:20      ...

     

    Tabela Serviço B

    fk_id    horario     dados

    1          07:20      ...

    1          07:40      ...

    1          08:15      ...

    1          09:10      ...

    1          09:30      ...

     

    No dia 21/10/2008, alem de criar um novo historico do dia, terei que verificar o historico do dia anterior se estao atualizados cada serviço. Por isso a duvida se faço um select count() em cada tabela serviço ou armazeno as leituras de cada serviço na tabela historico do dia para que eu possa estar verificando se os serviços do dia estao atualizados.

    terça-feira, 21 de outubro de 2008 10:54
  • Rafael,

     

    Concordo com você, a trigger seria uma solução interessante.

    terça-feira, 21 de outubro de 2008 11:15
  • Bem, agora eu que nao entendi a utilizaçao de triggers para inserir e deletar. rsrs

    Qual seria a vantagem?

    terça-feira, 21 de outubro de 2008 11:32
  • Marcelo,

     

    Você Utilizando Trigger na hora de inserir de deletar a sua tabela de relacionamento contendo os Count referente as outras tabelas está sempre atualizada. Pelo fato da trigger executar sempre que acontece o evento predefinido nela (Insert, Delete no seu caso.)

     

    Essa é a vantagem, dados sempre atualizados em tempo real.

     

    []'s

     

    Rafael Krisller

     

    terça-feira, 21 de outubro de 2008 11:35
  • Marcelo,

     

    Você Utilizando Trigger na hora de inserir de deletar a sua tabela de relacionamento contendo os Count referente as outras tabelas está sempre atualizada. Pelo fato da trigger executar sempre que acontece o evento predefinido nela (Insert, Delete no seu caso.)

     

    Essa é a vantagem, dados sempre atualizados em tempo real.

     

    []'s

     

    Rafael Krisller

     

    terça-feira, 21 de outubro de 2008 11:35
  • Marcelo,

     

    Você Utilizando Trigger na hora de inserir de deletar a sua tabela de relacionamento contendo os Count referente as outras tabelas está sempre atualizada. Pelo fato da trigger executar sempre que acontece o evento predefinido nela (Insert, Delete no seu caso.)

     

    Essa é a vantagem, dados sempre atualizados em tempo real.

     

    []'s

     

    Rafael Krisller

     

    terça-feira, 21 de outubro de 2008 11:35
  • Certo, mas entao voce prefere utilizar os COUNT ao inves de eu ter campos que me indicam ate qual leitura foi atualizado cada serviço?

    terça-feira, 21 de outubro de 2008 12:06
  • Marcelo,

     

    A grande vantagem em utilizar Trigger neste caso seria pela facilidade e automatização no processo, pois sempre que acontecer uma manipulação nestas tables o trigger será disparado.

     

    Por outro lado, temos que tomar cuidado com possíveis custos de processamento que podem ocorrer!!!

     

    terça-feira, 21 de outubro de 2008 12:07
  • Ok, obrigado pelas sugestoes, mas mesmo assim utilizaria o COUNT() para recuperar o total de leituras de cada serviço ao inves de ter campos que me indicam o total de leituras de cada serviço?

    terça-feira, 21 de outubro de 2008 13:23