我有一个查询的一部分,我正在尝试优化。我的表格有很多信息,如果我们能够对它进行一些优化,那将对我们有所帮助。
这部分需要更长的时间:
CASE
WHEN {SPS_FACTURAS}.[TipoFactura] = 'F'
AND {SPS_FACTURAS}.[IsPurged] = 0 THEN (SELECT COUNT(DISTINCT NumRec)
FROM {SPS_LINFARMA} linfarma
WHERE linfarma.[IdCodFact] = {SPS_FACTURAS}.[IdCodFact])
WHEN {SPS_FACTURAS}.[TipoFactura] = 'F'
AND {SPS_FACTURAS}.[IsPurged] = 1 THEN (SELECT COUNT(DISTINCT NumRec)
FROM {SPS_HISTLINFARMA} histfarm
WHERE histfarm.[IdCodFact] = {SPS_FACTURAS}.[IdCodFact])
WHEN {SPS_FACTURAS}.[TipoFactura] = 'C'
AND {SPS_FACTURAS}.[NomUsrIns] <> 'WS_Faturacao'
AND {SPS_FACTURAS}.[IsPurged] = 0 THEN (SELECT COUNT(DISTINCT NUMFICH)
FROM {SPS_LINFACT2} linha
WHERE linha.[IdCodFact] = {SPS_FACTURAS}.[IdCodFact])
WHEN {SPS_FACTURAS}.[TipoFactura] = 'C'
AND {SPS_FACTURAS}.[NomUsrIns] <> 'WS_Faturacao'
AND {SPS_FACTURAS}.[IsPurged] = 1 THEN (SELECT COUNT(DISTINCT NUMFICH)
FROM {SPS_HISTLINFACT} histlin
WHERE histlin.[IdCodFact] = {SPS_FACTURAS}.[IdCodFact])
WHEN {SPS_FACTURAS}.[TipoFactura] = 'C'
AND {SPS_FACTURAS}.[NomUsrIns] = 'WS_Faturacao'
THEN (SELECT COUNT(DISTINCT NUMFICH)
FROM {SPS_LINFACTWS} linWS
WHERE linWS.[IdCodFact] = {SPS_FACTURAS}.[IdCodFact])
END
有没有办法可以优化它?
提前多多感谢, 文森特科尔帕