GARANTIR DESCONTO

Fórum Duvida em Indices #26515

03/02/2006

0

E ai galera!

Alguem sabe me dizer como fasso para saber em qual campo devo usar um indice para que uma consulta fique mais rapida.

Aproveitando quando a sequencia dos campos. Nas condição fazem alguma diferencia em relação em qual colocar primeiro

tenho a seguinte SQL e esta lenta

obs: uso Postgres e a maiores tabelas são as ´CADASTRO MOVEXA´
e ´CADASTRO MOVEXACO´

se alguem puder me ajudar desde já agradeço

Audio.SQL.Clear;
Audio.SQL.Add(´SELECT´);
Audio.SQL.Add(´exa.´DATA´,´);
Audio.SQL.Add(´exa.´FUNCIONARIO´,´);
Audio.SQL.Add(´exa.´EMPRESA´,´);
Audio.SQL.Add(´exa.´CHAVE´,´);
Audio.SQL.Add(´exa.´CLINICO´,´);
audio.SQL.Add(´exa.´TIPO´,´);
audio.SQL.Add(´exa.´FUNCAO´,´);
audio.SQL.Add(´exa.´SETOR´,´);

audio.SQL.Add(´mov.´CODEXA´,´);
audio.SQL.Add(´mov.´TIPO´,´);
audio.SQL.Add(´mov.´DATA´,´);
audio.SQL.Add(´mov.´RETORNO´,´);

Audio.SQL.Add(´fun.´NOME´ AS NMFUNCIONARIO,´);

Audio.SQL.Add(´emp.´NOME´ AS NMEMPRESA´);
Audio.SQL.Add(´FROM ´CADASTRO MOVEXA´ exa´);
Audio.SQL.Add(´LEFT JOIN ´CADASTRO EMPRESAS´ emp ON exa.´EMPRESA´ = emp.´CODIGO´´);
Audio.SQL.Add(´LEFT JOIN ´CADASTRO MOVEXACO´ mov ON exa.´CHAVE´ = mov.´CHAVE´ and mov.´TIPO´ = ´´1´´´);
Audio.SQL.Add(´LEFT JOIN ´CADASTRO FUNCIONA´ fun ON exa.´FUNCIONARIO´ = fun.´CODIGO´´);
Audio.SQL.Add(´ WHERE exa.´TIPO´ = ´´Normal´´´);
Audio.SQL.Add(´ AND mov.´DATA´ >= ´´´ + FormatDateTime(´yyyy/mm/dd´, vdatini) + ´´´´);
Audio.SQL.Add(´ AND mov.´DATA´ <= ´´´ + FormatDateTime(´yyyy/mm/dd´, vdatfin) + ´´´´);
Audio.SQL.Add(´ AND mov.´CODEXA´ = ´ + IntToStr(vExames[Combobox2.ItemIndex]));

if CurrencyEdit1.Value <> 0 then audio.SQL.Add(´ AND exa.´EMPRESA´ = ´´´+CurrencyEdit1.Text+´´´´);
audio.SQL.Add(´ORDER BY exa.´EMPRESA´, mov.´DATA´´);
If Audio.Active then Audio.ExecSQL else Audio.Open;


Biodelphi

Biodelphi

Responder

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

Aceitar