Fórum Lenta na Execução #299474
14/10/2005
0
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
Curtir tópico
+ 0Posts
14/10/2005
Pezzin
Procure criar um índice ou chave para seu campo NrContrLote
Gostei + 0
14/10/2005
Pezzin
Gostei + 0
14/10/2005
Tremonti
Mas como criaria, pode me ajudar?
Gostei + 0
14/10/2005
Olimpio
Gostei + 0
15/10/2005
Dedi
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.
Gostei + 0
15/10/2005
Tremonti
Pelo Delphi nao
Pelo SQl Mesmo
Gostei + 0
15/10/2005
Dedi
a informação acima aplica se a tabelas tipo paradox.
Gostei + 0
16/10/2005
Tremonti
Gostei + 0
17/10/2005
Lucianobarreto
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)