BUSCA BANCO FIREBIRD

17/12/2021

0

Amigos tenho uma aplicação em delphi XE2, a qual uso o firebird como banco de dados, tenho uma tela de Notas de Vendas, onde é exibido em um tabview com 2 abas.....na 1 aba mostro o cabeçário do pedido...e na 2 aba o detalhamento do mesmo com os produtos listados. No banco de dados tenho 2 tabelas, uma com o cabeçario e outra com os itens. A programação segui a lógica do seguinte, O formulário quando abre, ele já entra ativada na aba 1(cabecario do pedido) e ao selecionar a aba 2, ele executa a TZQuery que busca no banco os items daquele pedido. (Ex.: Select * from tabela where codnota=codpedido)....isso no evento onchange do tabview.....o problema é que está demorando muito trazer o retorno, uma vez que a tabela de item está com uns 300 mil registros. Gostaria de uma luza de como fazer com que essa consulta fosse executada mais rápida, tipo se faço o teste com o banco local demora em torno de uns 22 segundo pra mostrar a aba com os produtos daquele pedido, lembrando que tem pedido que tem 1 item só, porém só a 1 vez que o form é aberto, pq depois dessa primeira consulta mudo de pedido e aciono a aba ela funciona normal. a consulta fica mais rápida.
Geone Castro

Geone Castro

Responder

Posts

17/12/2021

Emerson Nascimento

crie um índice pelo campo de busca e também pelos campos usados para ordenação.
por exemplo:

SELECT * FROM TABELAITENS WHERE PEDIDO = CODPEDIDO ORDER BY NUMITEM

crie um índice pelo campo PEDIDO e um índice pelo campo NUMITEM da tabela TABELAITENS

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar