Usuário com melhor resposta
Como melhorar uma SP

Pergunta
-
Pessoal,
Seguinte, preciso unificar 2 SP que tem um tamanho pra lá de consideravel. =)
Vamos ao seguinte cenário:
Sp[A]
Sp[B]A Sp[A] tem um SELECT com 10 tabelas, com left e inner join.
Tanto a [A] quanto a [B] são bem complexas e exigem um consumo legal do servidor.Daí a questão, preciso de um relatório unificado de [A] e [B]..
Qual a melhor forma para executar?
Obrigado.
Respostas
Todas as Respostas
-
-
-
-
-
-
Vejam como as SP estão aqui...
SELECT
a.*, NULL AS CODANEXO,
(CASE WHEN (ISNULL(TIPL,'') IN('P','N')) THEN 'SEM CORRESPONDENTE'
WHEN (ISNULL(TIPIA,'') IN('','F')) THEN c.NOMFILIAL
ELSE b.NOMFORN END) AS RESP
NULL AS AVALIACAO,
NULL AS ARQUIVO
FROM #T1 a
LEFT JOIN F35 b WITH(NOLOCK) ON b.CODFORN = a.REFERATD AND a.TIPL = 'C'
LEFT JOIN R01 c WITH(NOLOCK) ON a.CODFILIAL = c.CODFILIAL
LEFT JOIN A06 d WITH(NOLOCK) ON d.CODAGENDA = a.REFERATD AND a.TIP = 'F'
LEFT JOIN S01 e WITH(NOLOCK) ON d.CODUSERRECEP = e.ID
ORDER BY a.DATAFATAL DESCSELECT
a.*, NULL AS CODANEXO,
(CASE WHEN (ISNULL(TIPL,'') IN('P','N')) THEN 'SEM CORRESPONDENTE'
WHEN (ISNULL(TIPIA,'') IN('','F')) THEN c.NOMFILIAL
ELSE b.NOMFORN END) AS RESP
NULL AS AVALIACAO,
NULL AS ARQUIVO
FROM #T2 a
LEFT JOIN F35 b WITH(NOLOCK) ON b.CODFORN = a.REFERATD AND a.TIPL = 'C'
LEFT JOIN R01 c WITH(NOLOCK) ON a.CODFILIAL = c.CODFILIAL
LEFT JOIN A06 d WITH(NOLOCK) ON d.CODAGENDA = a.REFERATD AND a.TIP = 'F'
LEFT JOIN S01 e WITH(NOLOCK) ON d.CODUSERRECEP = e.ID
ORDER BY a.DATAFATAL DESCselect * from #t1
union all
select * from #t2
-