[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