SUM em banco firebird 1.0 e 1.5
09/09/2004
0
Bom dia amigos Delphianos.
Estou com um probleminha e gostaria da ajuda de você.
Seguinte ...
Temos um banco de dados projetado em Firebird 1.0 e estou tendo problemas de desempenho no mesmo. Tenho algumas rotinas de update que ao serem executadas o banco de dados fica estremamente lento, por exemplo, Um update de executa a seguinte sintaxe:
SELECT SUM(DINHEIRO) FROM CUPOM
WHERE DATA_MOV = :DATA AND
TURNO = :TURNO AND
OPERADOR = :OPERADOR
INTO :vDINHEIRO
Bem isso é apenas o começo, mas a pergunta seria ...
´Quando executo uma instrução como SUM ela verifica coloca a base toda na memória para filtrar ou apenas os dados já filtrados ?´
Puxa ficaremos gratos com alguma resposta.
Desde já muito obrigado(a) pela atenção.
Leonardo.
leonardo@softwork.com.br
[b:761b5469a6]Título editado: ´SUM EM BANCO FIREBIRD 1.0 E 1.5´[/b:761b5469a6]
Não utilize caixa alta para escrever seu título; equivale a gritar. Por favor, releia as [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689]Regras de Conduta[/url] do fórum.
Sandra/Moderação
Estou com um probleminha e gostaria da ajuda de você.
Seguinte ...
Temos um banco de dados projetado em Firebird 1.0 e estou tendo problemas de desempenho no mesmo. Tenho algumas rotinas de update que ao serem executadas o banco de dados fica estremamente lento, por exemplo, Um update de executa a seguinte sintaxe:
SELECT SUM(DINHEIRO) FROM CUPOM
WHERE DATA_MOV = :DATA AND
TURNO = :TURNO AND
OPERADOR = :OPERADOR
INTO :vDINHEIRO
Bem isso é apenas o começo, mas a pergunta seria ...
´Quando executo uma instrução como SUM ela verifica coloca a base toda na memória para filtrar ou apenas os dados já filtrados ?´
Puxa ficaremos gratos com alguma resposta.
Desde já muito obrigado(a) pela atenção.
Leonardo.
leonardo@softwork.com.br
[b:761b5469a6]Título editado: ´SUM EM BANCO FIREBIRD 1.0 E 1.5´[/b:761b5469a6]
Não utilize caixa alta para escrever seu título; equivale a gritar. Por favor, releia as [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689]Regras de Conduta[/url] do fórum.
Sandra/Moderação
Leus
Curtir tópico
+ 0
Responder
Posts
09/09/2004
Beppe
O SUM age no conjunto de dados já filtrado pelo where, senão, qual seria sua necessidade(do where)?
Definindo alguns índices, poderia melhorar o tempo de resposta.
Definindo alguns índices, poderia melhorar o tempo de resposta.
Responder
09/09/2004
Vinicius2k
Colega,
Como o Beppe já lhe sugeriu, um indice com as colunas DATA_MOV + TURNO + OPERADOR, deve melhorar significativamente a performance...
Minha sugestão é que vc execute esta instrução no seu front-end e verifique se no PLAN adotado pelo servidor seu indice foi utilizado... esta é a melhor forma de verificar a eficiência dos indices... Das ferramentas que eu conheço, o IBExpert exibe o PLAN adotado pelo servidor na execução da instrução...
Vc deve evitar, o máximo possível, a utilização do PLAN NATURAL, que é, sem índices... se vc quiser pode fazer um teste com esta instrução antes de criar o índice, que me arriscaria a dizer q o PLAN adotado está sendo o NATURAL..
T+
Como o Beppe já lhe sugeriu, um indice com as colunas DATA_MOV + TURNO + OPERADOR, deve melhorar significativamente a performance...
Minha sugestão é que vc execute esta instrução no seu front-end e verifique se no PLAN adotado pelo servidor seu indice foi utilizado... esta é a melhor forma de verificar a eficiência dos indices... Das ferramentas que eu conheço, o IBExpert exibe o PLAN adotado pelo servidor na execução da instrução...
Vc deve evitar, o máximo possível, a utilização do PLAN NATURAL, que é, sem índices... se vc quiser pode fazer um teste com esta instrução antes de criar o índice, que me arriscaria a dizer q o PLAN adotado está sendo o NATURAL..
T+
Responder
Clique aqui para fazer login e interagir na Comunidade :)