[firebase-br] Melhorar consulta

Joel do Prado Junior big.rid.listas em gmail.com
Sex Ago 16 07:32:13 -03 2013


Experimente utilizar inner no lugar do left;
Experimente criar um índice para um o dois campos da cláusua where, e 
depois avalie se vale ou não a pena manter.

Att.

Em 15/08/2013 21:30, Carlos Phelippe escreveu:
> Olá pessoal,
> preciso de ajuda para otimizar a consulta abaixo:
>
> BEGIN
> FOR SELECT C.IDENTIFICADOR, C.DATA, C.HORA, C.SONORO, C.AVISADO, C.OPCAO, C.TEXTO, C.CONTATO, C.LOGIN, C.PUBLICO, C.QUEM, C.SINCRONIZAR, C.DATAGRAVACAO, C.TIPO, TC.COR
>
> FROM COMPROMISSO C LEFT JOIN PESS0A_COMPROMISSO PC ON PC.ID_COMPROMISSO = C.IDENTIFICADOR
> LEFT JOIN TIPOCOMPROMISSO TC ON TC.NOME = C.TIPO
> LEFT JOIN PESSOAFISICA PF ON PF.IDENTIFICADOR = PC.ID_PESSOA AND PC.TIPO_PESSOA = :TIPO_PESSOA_PF
> LEFT JOIN PESSOAJURIDICA PJ ON PJ.IDENTIFICADOR = PC.ID_PESSOA AND PC.TIPO_PESSOA = :TIPO_PESSOA_PJ
> LEFT JOIN CONTATO_PJ C_PJ ON C_PJ.IDENTIFICADOR = PC.ID_PESSOA AND PC.TIPO_PESSOA = :TIPO_PESSOA_C_PJ
>
> WHERE C.DATA BETWEEN :DATA_01 AND :DATA_02 AND COALESCE(C.TEXTO,'') CONTAINING :TEXTO_ AND COALESCE(PJ.NOME,'')||COALESCE(PF.NOME,'')||COALESCE(C_PJ.NOME,'') CONTAINING :NOME AND C.OPCAO IN (:OPCAO_01, :OPCAO_02, :OPCAO_03) INTO :IDENTIFICADOR, :DATA, :HORA, :SONORO, :AVISADO, :OPCAO, :TEXTO, :CONTATO, :LOGIN, :PUBLICO, :QUEM, :SINCRONIZAR, :DATAGRAVACAO, :TIPO, :COR DO SUSPEND;
>
> END
>
> Como poderia otimizar a consulta acima?
>
> [http://www.digilab.com.br/wp-content/themes/Digilab/images/logo_digilab.jpg]   Carlos Phelippe
> Analista de Sistemas
> +55 48 3234 4041
> digilab.com.br<http://www.digilab.com.br>
>
> ______________________________________________
> 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





Mais detalhes sobre a lista de discussão lista