[firebase-br] Melhorar velocidade na consulta
Marcelo Moreira
marcelomoreira.souza em gmail.com
Seg Jul 6 17:13:15 -03 2009
Armando,
Ao que parece esta seria a melhor solução para aumentar a velocidade na
consulta.
Grato pela atenção!
2009/7/6 Armando Boza Gonçalves <armando.boza em gmail.com>
> Esperimente criar indices nos campos que estão no WHERE e AND.
>
> Att
>
> Armando
>
> Marcelo Moreira escreveu:
>
> Pessoal,
>> Bom dia!
>>
>> Em um banco Firebird 2.1 rodando no Windows XP SP3 tenho a seguinte
>> tabela:
>>
>> CREATE TABLE ENVIA (
>> ID_ENVIA NUMERIC(18,0) NOT NULL,
>> PRIORIDADE INTEGER NOT NULL,
>> ID_ENVIA_STATUS INTEGER DEFAULT 1 NOT NULL,
>> DATA_INICIAL DATE NOT NULL,
>> HORA_INICIAL TIME NOT NULL,
>> HORA_FINAL TIME NOT NULL,
>> DESTINATARIO CHAR(12) NOT NULL,
>> MENSAGEM VARCHAR(160) NOT NULL,
>> ID_CLIENTE INTEGER NOT NULL,
>> ID_REMESSA INTEGER,
>> TENTATIVA INTEGER DEFAULT 0 NOT NULL,
>> DATA DATE NOT NULL,
>> HORA TIME NOT NULL
>> );
>>
>> ALTER TABLE ENVIA ADD CONSTRAINT PK_ENVIA PRIMARY KEY (ID_ENVIA);
>>
>>
>> O que acontece é que nesta tabela eu tenho muitos registros e estou
>> trabalhando com o seguinte select para fazer um UPDATE em determinado
>> registro:
>>
>> update
>> ENVIA E
>> set
>> E.ID_ENVIA_STATUS = 2
>> where
>> E.ID_ENVIA = ( select
>> first(1) EN.ID_ENVIA
>> from
>> ENVIA EN
>> where
>> (EN.ID_ENVIA_STATUS = 1) and
>> (EN.PRIORIDADE = 1) and
>> (current_date >= EN.DATA_INICIAL) and
>> (current_time between EN.HORA_INICIAL and EN.HORA_FINAL))
>>
>> O que acontece é que estou precisando melhorar a velocidade neste processo
>> pois a medida que eu tenho mais registros nesta tabela o tempo para
>> realizar
>> o UPDATE esta sendo maior.
>>
>> 1 - Criando indices nos campos que eu uso no segundo WHERE poderia
>> resolver
>> o problema?
>> 2 - Com mais quatro indices eu poderia estar gerando algum outro tipo de
>> problema, mesmo que seja a longo prazo?
>>
>> Grato pela atenção!
>>
>>
>>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
--
Marcelo Moreira
(31) 8420-2723
E-mail / MSN: marcelomoreira.souza em hotmail.com
E-mail: marcelomoreira.souza em gmail.com
Skype: marcelomoreira.souza
Mais detalhes sobre a lista de discussão lista