[firebase-br] Ajuda em SELECT

Alysson Gonçalves de Azevedo agalysson em gmail.com
Qua Out 27 17:00:31 -03 2010


Realmente ainda nao entendo muito de "transações antigas abertas", mas sei
que é isso que causa lentidão...
trate de dar comites em seus inserts...


Alysson Gonçalves de Azevedo
(11) 8491-7730

(\(''^_^ )/)

"Pobre vive dizendo que não tem nada, mas quando vem a enchente, ele sai
gritando: -Perdi tudo!!!"



Em 27 de outubro de 2010 14:57, Sergio Nascimento
<sergiojampapb em gmail.com>escreveu:

> Obrigado pela resposta,
>
> Mas eu recriei o FK entre as tabelas NS e NSI e não "resolveu", daí
> reniciei
> o computador e dutou apenas 655 ms (isto mesmo MILISEGUNDOS) - o
> FB/computador estavam "malucos".
>
> Muito obrigado pela atenção.
>
> Vou seguir a dica do between.
>
>
>
> 2010/10/27 Carlos H. Cantu <listas em warmboot.com.br>
>
> > Vc vai ter que analisar o PLAN desse select, e ver se o Firebird está
> > usando os índices corretos quando possível.
> >
> > De antemão, eu substituiria:
> >
> > (EXTRACT(YEAR FROM NS.DATA_DOCUMENTO) = 2010) AND
> > (EXTRACT(MONTH FROM NS.DATA_DOCUMENTO) = 1) AND
> >
> > por
> >
> > ns.datadocumento between '1.1.2010' and '31.1.2010'
> >
> > e me certificaria que existe um indice criado para esse campo.
> >
> > []s
> > Carlos H. Cantu
> > www.FireBase.com.br <http://www.firebase.com.br/> - www.firebirdnews.org
> > www.warmboot.com.br - blog.firebase.com.br
> >
> > SN> Pessoal,
> >
> > SN> Este select abaixo está demorando 19 min (isto mesmo MINUTOS)
> >
> > SN> SELECT NSI.ESPECIE_DOCUMENTO, NSI.SERIE_SUBSERIE,
> NSI.NUMERO_DOCUMENTO,
> > SN> NS.CLI_CODIGO, NSI.CFOP_CODIGO, NSI.ICMS_ALIQUOTA, NSI.CST_CODIGO,
> > SN> CLI.CLI_CNPJ, CLI.CLI_IE, NS.DATA_DOCUMENTO, CMB.UF_CODIGO,
> > SN> EDF.ESPECIE_DOC_FISC_SINTEGRA,
> > SN> SUM(NSI.NFE_BC_ICMS)    AS BC_ICMS,     SUM(NSI.NFE_VLR_ICMS)     AS
> > SN> VLR_ICMS,     SUM(NSI.NFE_BC_ICMS_ST) AS BC_ICMS_ST,
> > SN> SUM(NSI.NF_VLR_ICMS_ST) AS VLR_ICMS_ST, SUM(NSI.NFE_VLR_IPI)      AS
> > SN> VLR_IPI,      SUM(NSI.NFE_VLR_TOTAL)  AS VALOR_MERC,
> > SN> SUM(NSI.NFE_VLR_FRETE)  AS VALOR_FRETE, SUM(NSI.NFE_VLR_SEGURO)   AS
> > SN> VALOR_SEGURO, SUM(NSI.NFE_VLR_ODA)    AS VLR_ODA,
> > SN> SUM(NSI.NFE_VALOR_REDUCAO_BC) AS RED_BC
> > SN> FROM NF_SAIDAS_ITENS NSI
> > SN> JOIN NF_SAIDAS NS ON (NSI.EMP_CODIGO = NS.EMP_CODIGO AND
> > SN> NSI.ESPECIE_DOCUMENTO = NS.ESPECIE_DOCUMENTO AND NSI.SERIE_SUBSERIE =
> > SN> NS.SERIE_SUBSERIE AND NSI.NUMERO_DOCUMENTO = NS.NUMERO_DOCUMENTO)
> > SN> JOIN CLIENTES CLI ON (NS.CLI_CODIGO = CLI.CLI_CODIGO)
> > SN> JOIN ESPECIES_DOCUMENTOS_FISCAIS EDF ON (EDF.ESPECIE_DOCUMENTO =
> > SN> NSI.ESPECIE_DOCUMENTO)
> > SN> JOIN CMB ON (CLI.CMB_CODIGO = CMB.CMB_CODIGO)
> > SN> WHERE (NSI.EMP_CODIGO = 1) AND
> > SN> (EXTRACT(YEAR FROM NS.DATA_DOCUMENTO) = 2010) AND
> > SN> (EXTRACT(MONTH FROM NS.DATA_DOCUMENTO) = 1) AND
> > SN> (NSI.ESPECIE_DOCUMENTO NOT IN ('CTR   ', 'CTRC  ', 'NFCEE', 'NFCFGC',
> > SN> 'NFCFAC'))
> > SN> GROUP BY NSI.ESPECIE_DOCUMENTO, NSI.SERIE_SUBSERIE,
> > NSI.NUMERO_DOCUMENTO,
> > SN> NS.CLI_CODIGO, NSI.CFOP_CODIGO, NSI.ICMS_ALIQUOTA, CST_CODIGO,
> > CLI.CLI_CNPJ,
> > SN> CLI.CLI_IE, NS.DATA_DOCUMENTO, CMB.UF_CODIGO,
> > EDF.ESPECIE_DOC_FISC_SINTEGRA
> >
> > SN> O total de registros nas tabelas é de:
> > SN> - NSI 33.923
> > SN> - NS  17.976
> > SN> - CLI  5.219
> > SN> - EDF     27
> > SN> - CMB  5.566
> >
> > SN> (o retorno do select é de aproximadamente 1.000 registros):
> >
> > SN> São poucos como podem ver. Alguém tem como me ajudar ?
> >
> >
> > ______________________________________________
> > 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
> >
>
>
>
> --
> Atenciosamente,
>
> Sérgio Ricardo
> ______________________________________________
> 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