[firebase-br] Ajuda em SELECT

Sergio Nascimento sergiojampapb em gmail.com
Qua Out 27 13:54:16 -03 2010


Pessoal,

Este select abaixo está demorando 19 min (isto mesmo MINUTOS)

SELECT NSI.ESPECIE_DOCUMENTO, NSI.SERIE_SUBSERIE, NSI.NUMERO_DOCUMENTO,
NS.CLI_CODIGO, NSI.CFOP_CODIGO, NSI.ICMS_ALIQUOTA, NSI.CST_CODIGO,
CLI.CLI_CNPJ, CLI.CLI_IE, NS.DATA_DOCUMENTO, CMB.UF_CODIGO,
EDF.ESPECIE_DOC_FISC_SINTEGRA,
SUM(NSI.NFE_BC_ICMS)    AS BC_ICMS,     SUM(NSI.NFE_VLR_ICMS)         AS
VLR_ICMS,     SUM(NSI.NFE_BC_ICMS_ST) AS BC_ICMS_ST,
SUM(NSI.NF_VLR_ICMS_ST) AS VLR_ICMS_ST, SUM(NSI.NFE_VLR_IPI)          AS
VLR_IPI,      SUM(NSI.NFE_VLR_TOTAL)  AS VALOR_MERC,
SUM(NSI.NFE_VLR_FRETE)  AS VALOR_FRETE, SUM(NSI.NFE_VLR_SEGURO)       AS
VALOR_SEGURO, SUM(NSI.NFE_VLR_ODA)    AS VLR_ODA,
SUM(NSI.NFE_VALOR_REDUCAO_BC) AS RED_BC
FROM NF_SAIDAS_ITENS NSI
JOIN NF_SAIDAS NS ON (NSI.EMP_CODIGO = NS.EMP_CODIGO AND
NSI.ESPECIE_DOCUMENTO = NS.ESPECIE_DOCUMENTO AND NSI.SERIE_SUBSERIE =
NS.SERIE_SUBSERIE AND NSI.NUMERO_DOCUMENTO = NS.NUMERO_DOCUMENTO)
JOIN CLIENTES CLI ON (NS.CLI_CODIGO = CLI.CLI_CODIGO)
JOIN ESPECIES_DOCUMENTOS_FISCAIS EDF ON (EDF.ESPECIE_DOCUMENTO =
NSI.ESPECIE_DOCUMENTO)
JOIN CMB ON (CLI.CMB_CODIGO = CMB.CMB_CODIGO)
WHERE (NSI.EMP_CODIGO = 1) AND
(EXTRACT(YEAR FROM NS.DATA_DOCUMENTO) = 2010) AND
(EXTRACT(MONTH FROM NS.DATA_DOCUMENTO) = 1) AND
(NSI.ESPECIE_DOCUMENTO NOT IN ('CTR   ', 'CTRC  ', 'NFCEE', 'NFCFGC',
'NFCFAC'))
GROUP BY NSI.ESPECIE_DOCUMENTO, NSI.SERIE_SUBSERIE, NSI.NUMERO_DOCUMENTO,
NS.CLI_CODIGO, NSI.CFOP_CODIGO, NSI.ICMS_ALIQUOTA, CST_CODIGO, CLI.CLI_CNPJ,
CLI.CLI_IE, NS.DATA_DOCUMENTO, CMB.UF_CODIGO, EDF.ESPECIE_DOC_FISC_SINTEGRA

O total de registros nas tabelas é de:
- NSI 33.923
- NS  17.976
- CLI  5.219
- EDF     27
- CMB  5.566

(o retorno do select é de aproximadamente 1.000 registros):

São poucos como podem ver. Alguém tem como me ajudar ?

-- 
Atenciosamente,

Sérgio Ricardo



Mais detalhes sobre a lista de discussão lista