Busca de dados lenta com banco Interbase.
Minha busca de dados na rede está lenta. Utilizo banco de dados Interbase 6.0 e Delphi7. Quando necessito localizar dados no banco, chamo uma SP passando parâmetros. Ex:
IF (:CHAVE4 = 1) THEN /*Localiza por nome ou Código*/
BEGIN
FOR
SELECT FILIAL, O, CODIGO, LOJA, NOME, TIPO, DESCTIPO, ENDERECO, COMPLEMENTO,
BAIRRO, CIDADE, ESTADO, CEP, PAIS, TELCOMERCIAL, RAMAL, TELRESIDENCIAL,
DATANASCIMENTO, FAX, CELULAR, DATAUNIAO, NOMECONJUGE, DATABATISMO,
DATAENTECM, VALABERTO, VALVENCIDO, OBSERVACOES, CELULA, DESCCEL,
LIDERCEL, FOTO, SX1, SEXO, TURMA, TURNO, NOMEPAI, NOMEMAE, STATUS,
DTPRICOM, DTULTCOM, IDADE, CONVENIO
FROM CLIENTE WHERE FILIAL = :CHAVE1 AND NOME LIKE :CHAVE2 OR CODIGO LIKE :CHAVE2 ORDER BY NOME
INTO :FILIAL, :O, :CODIGO, :LOJA, :NOME, :TIPO, :DESCTIPO, :ENDERECO, :COMPLEMENTO,
:BAIRRO, :CIDADE, :ESTADO, :CEP, :PAIS, :TELCOMERCIAL, :RAMAL, :TELRESIDENCIAL,
:DATANASCIMENTO, :FAX, :CELULAR, :DATAUNIAO, :NOMECONJUGE, :DATABATISMO,
:DATAENTECM, :VALABERTO, :VALVENCIDO, :OBSERVACOES, :CELULA, :DESCCEL,
:LIDERCEL, :FOTO, :SX1, :SEXO, :TURMA, :TURNO, :NOMEPAI, :NOMEMAE, :STATUS,
:DTPRICOM, :DTULTCOM, :IDADE, :CONVENIO
DO
SUSPEND;
END
A chamada da SP, está em SQL Select do objeto IBDataSet relacionado, no caso, ao cadastro de clientes. Quando tenho um banco local, na máquina que estou trabalhando, a busca é mais rápida, mas quando o banco está em um servidor na rede, esta busca torna-se lenta. O que posso melhorar nas configurações do banco e/ou rede.
IF (:CHAVE4 = 1) THEN /*Localiza por nome ou Código*/
BEGIN
FOR
SELECT FILIAL, O, CODIGO, LOJA, NOME, TIPO, DESCTIPO, ENDERECO, COMPLEMENTO,
BAIRRO, CIDADE, ESTADO, CEP, PAIS, TELCOMERCIAL, RAMAL, TELRESIDENCIAL,
DATANASCIMENTO, FAX, CELULAR, DATAUNIAO, NOMECONJUGE, DATABATISMO,
DATAENTECM, VALABERTO, VALVENCIDO, OBSERVACOES, CELULA, DESCCEL,
LIDERCEL, FOTO, SX1, SEXO, TURMA, TURNO, NOMEPAI, NOMEMAE, STATUS,
DTPRICOM, DTULTCOM, IDADE, CONVENIO
FROM CLIENTE WHERE FILIAL = :CHAVE1 AND NOME LIKE :CHAVE2 OR CODIGO LIKE :CHAVE2 ORDER BY NOME
INTO :FILIAL, :O, :CODIGO, :LOJA, :NOME, :TIPO, :DESCTIPO, :ENDERECO, :COMPLEMENTO,
:BAIRRO, :CIDADE, :ESTADO, :CEP, :PAIS, :TELCOMERCIAL, :RAMAL, :TELRESIDENCIAL,
:DATANASCIMENTO, :FAX, :CELULAR, :DATAUNIAO, :NOMECONJUGE, :DATABATISMO,
:DATAENTECM, :VALABERTO, :VALVENCIDO, :OBSERVACOES, :CELULA, :DESCCEL,
:LIDERCEL, :FOTO, :SX1, :SEXO, :TURMA, :TURNO, :NOMEPAI, :NOMEMAE, :STATUS,
:DTPRICOM, :DTULTCOM, :IDADE, :CONVENIO
DO
SUSPEND;
END
A chamada da SP, está em SQL Select do objeto IBDataSet relacionado, no caso, ao cadastro de clientes. Quando tenho um banco local, na máquina que estou trabalhando, a busca é mais rápida, mas quando o banco está em um servidor na rede, esta busca torna-se lenta. O que posso melhorar nas configurações do banco e/ou rede.
Cfreitas
Curtidas 0
Respostas
Afarias
08/07/2004
quanto menos registros forem trazidos por este select, mais rápido seu desenpenho em rede -- ou seja, fique atento a seu ´filtro´
outro fator tb é o uso do LIKE que está impossibilitando o uso de índices na consulta, se puder, teria MUITO melhor desenpenho trocando o LIKE por STARTING WITH
T+
outro fator tb é o uso do LIKE que está impossibilitando o uso de índices na consulta, se puder, teria MUITO melhor desenpenho trocando o LIKE por STARTING WITH
T+
GOSTEI 0