Fórum Lenta na Execução #299474

14/10/2005

0

Caro Amigos
Tenho uma tabela que chamo de Tb_LtSaida e ela possui os seguintes campos:
NrContrLote, Data, CdFunc, MolEntr, CdTransp , LtOrigem, TpReceb, FormaPag, NmCli, DDD, Fone, Situacao, DtImporte

o problema:
ela tem 68 mil registros e demora 13 segundos para executar

O que posso fazer para ela melhorar a performance?

nao tenho nem indice e nem primary Key, onde criar e como

o Campo unico eh o NrContrLote

Abraços


Tremonti

Tremonti

Responder

Posts

14/10/2005

Pezzin

Que banco de dados vc usa ?

Procure criar um índice ou chave para seu campo NrContrLote


Responder

Gostei + 0

14/10/2005

Pezzin

Vai depender tb dá sua conexão e dos componentes que está usando.


Responder

Gostei + 0

14/10/2005

Tremonti

Uso a Tranquera do BDE

Mas como criaria, pode me ajudar?


Responder

Gostei + 0

14/10/2005

Olimpio

qual banco de dados usa???


Responder

Gostei + 0

15/10/2005

Dedi

Amigo,

Para criar uma chave primaria
pelo delphi mesmo vá em tools/database desktop
no database desktop vá em Toosl/Utilities/restructure
escolha a tabela
na estrutura da tabela marque o campo key na linha 1 onde esta o campo ´NrContrLote´ clique em save e pronto.

Obs:Faça um backup da tabela antes de ini ciar este procedimento.


Responder

Gostei + 0

15/10/2005

Tremonti

Uso Sql Server

Pelo Delphi nao

Pelo SQl Mesmo


Responder

Gostei + 0

15/10/2005

Dedi

não me atentei para qual banco vc estaria usando!!! imaginei ser uma tabela paradox.
a informação acima aplica se a tabelas tipo paradox.


Responder

Gostei + 0

16/10/2005

Tremonti

Alguem tem alguma idéia?


Responder

Gostei + 0

17/10/2005

Lucianobarreto

Por motivos de segurança tente o seguinte.
Crie uma tabela auxiliar com a mesma estrutura da Tb_LtSaida, porém já com o indice, como uma chave primaria por exemplo. Recrie a tabela Tb_LtSaida colocando o indice, e transfira os dados da tabela auxiliar para a tabela Tb_LtSaida. Ou entao você pode tentar alterar a tabela colocando o indice, o que eu acho que não vai rolar depois que você ja tem muitos dados nela, mas, se quiser tentar seria algo como
CREATE INDEX idx_cod ON tabela (campo)
ou
CREATE UNIQUE INDEX idx_cod ON tabela (campo) se tiver certeza que o valor nao irá se repetir.
Eu testei aqui no postgresql em uma tabela com dados e deu certo sem perder nada, mas na duvida crie um backup....
até mais


Responder

Gostei + 0

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

Aceitar