Boa tarde
Estou com um problema num cliente em que o Servidor de SQL fica congelado com CPU a 100%, com a query abaixo,
executada pelo serviço TTEwinService100
A única forma que encontramos para resolver é parar o serviço e colocá-lo com “Manual”!
Assim que o iniciamos, volta a executar a query.
Alguem me sabe dizer porque é que isto acontece? E como resolver?
SELECT * FROM
( SELECT IdCabec = c.Id, c.Filial, c.TipoDoc, c.Serie, c.NumDoc, DataDoc = c.DataDoc, c.TipoEntidade, c.Entidade, v.Nome,
SAFTNumExportacao = A.NumExporMax , SAFTDataExportacao = A.DataExporMax ,
TotalDoc = ABS(c.TotalMerc – c.TotalDesc + c.TotalIva + c.TotalOutros + c.TotalEcotaxa + c.TotalIEC) ,
TotalIva = ABS(c.TotalIva), TotalIS = 0 , Moeda = c.Moeda, NumContribuinte = c.NumContribuinte , cs.Anulado
FROM CabecCompras c INNER JOIN CabecComprasStatus cs ON c.Id = cs.IdCabecCompras
INNER JOIN DocumentosCompra d ON c.TipoDoc = d.Documento INNER JOIN SeriesCompras sv ON c.TipoDoc = SV.TipoDoc AND c.Serie = SV.Serie
INNER JOIN V_Entidades v ON c.TipoEntidade = v.TipoEntidade AND c.Entidade = v.Entidade
LEFT JOIN (SELECT NumExporMax = MAX(SLE.NumExportacao), DataExporMax = MAX(SE.DataExportacao) , IdDoc
FROM SAFT_LinhasExportacoes SLE INNER JOIN SAFT_Exportacoes SE ON SE.NumExportacao = SLE.NumExportacao AND SE.Tipo = 1
GROUP BY SLE.IdDoc) A ON A.IdDoc = c.Id
WHERE d.TipoDocumento = 4 AND c.DataDoc >= ‘1/1/2013’ AND c.DataDoc < ‘2/15/2023’
AND SV.TipoComunicacao = 2 AND ISNULL(SV.AutoFacturacao,0) = 1
AND ((‘C’ + c.TipoDoc + c.Serie + CONVERT(VARCHAR(20),c.NumDoc) + c.Filial) NOT IN
(SELECT ModuloDoc + TipoDoc + SerieDoc + CONVERT(VARCHAR(20),NumDoc) + FilialDoc FROM TransAT))
) a ORDER BY a.DataDoc