Otimização de Query

14/07/2017

0

Ola pessoal, boa tarde!

Ainda sou iniciante e estou dando muitas voltas para fazer querys no SQL.

Por exemplo no trecho abaixo faço 15 UPDATES para fazer varias regras de acordo com a regra de negocio gostaria de saber se e possível fazer uma melhoria na query de acordo com esses UPDATES?

--- REGRA 1
UPDATE [dbo].[SVA_TARIFACOES_INDEVIDAS3]
SET VALID_FINAL = 'SIM'
WHERE VALID_MES = 0
AND DIF = 0

UPDATE [dbo].[SVA_TARIFACOES_INDEVIDAS3]
SET VALID_FINAL = 'SIM'
WHERE VALID_MES > 0
AND DIF = 7
AND RECORRENCIA = 7

UPDATE [dbo].[SVA_TARIFACOES_INDEVIDAS3]
SET VALID_FINAL = 'SIM'
WHERE VALID_MES > 0
AND DIF = 30
AND RECORRENCIA = 30

UPDATE [dbo].[SVA_TARIFACOES_INDEVIDAS3]
SET VALID_FINAL = 'NÃO'
WHERE VALID_MES > 0
AND DIF < 7
AND RECORRENCIA <> 30

UPDATE [dbo].[SVA_TARIFACOES_INDEVIDAS3]
SET VALID_FINAL = 'NÃO'
FROM [dbo].[SVA_TARIFACOES_INDEVIDAS3]
WHERE VALID_MES > 0
AND DIF < 30
AND RECORRENCIA <> 7

UPDATE [dbo].[SVA_TARIFACOES_INDEVIDAS3]
SET VALID_FINAL = 'SIM'
FROM [dbo].[SVA_TARIFACOES_INDEVIDAS3]
WHERE VALID_MES > 0
AND DIF > 30
AND RECORRENCIA = 30

UPDATE [dbo].[SVA_TARIFACOES_INDEVIDAS3]
SET VALID_FINAL = 'SIM'
FROM [dbo].[SVA_TARIFACOES_INDEVIDAS3]
WHERE VALID_MES > 0
AND DIF > 7
AND RECORRENCIA = 7


--REGRA 2
UPDATE [dbo].[SVA_TARIFACOES_INDEVIDAS3]
SET VALID_FINAL = 'SIM'
WHERE VALID_MES > 0
AND DIF = 4
AND FEE = 199
AND RECORRENCIA = 4

UPDATE [dbo].[SVA_TARIFACOES_INDEVIDAS3]
SET VALID_FINAL = 'NÃO'
WHERE FEE = 99

UPDATE [dbo].[SVA_TARIFACOES_INDEVIDAS3]
SET VALID_FINAL = 'SIM'
WHERE VALID_MES > 0
AND DIF >= 4
AND FEE = 199
AND STEPDOWN = 'SIM'

UPDATE [dbo].[SVA_TARIFACOES_INDEVIDAS3]
SET VALID_FINAL = 'SIM'
WHERE VALID_MES > 0
AND DIF >= 4
AND FEE = 199
AND STEPDOWN = 'NÃO'


--REGRA 3
UPDATE [dbo].[SVA_TARIFACOES_INDEVIDAS3]
SET VALID_FINAL = 'SIM'
WHERE VALID_MES > 0
AND FEE = 100
AND RECORRENCIA = 2

UPDATE [dbo].[SVA_TARIFACOES_INDEVIDAS3]
SET VALID_FINAL = 'NÃO'
WHERE VALID_MES > 0
AND DIF = 1
AND FEE = 100
AND RECORRENCIA = 2


--REGRA 4
UPDATE [dbo].[SVA_TARIFACOES_INDEVIDAS3]
SET VALID_FINAL = 'SIM'
WHERE VALID_MES > 0
AND DIF = 15
AND FEE = 345
AND RECORRENCIA = 15

UPDATE [dbo].[SVA_TARIFACOES_INDEVIDAS3]
SET VALID_FINAL = 'SIM'
WHERE VALID_MES > 0
AND DIF >= 15
AND FEE = 345
AND STEPDOWN = 'SIM'
Welton Becegato

Welton Becegato

Responder

Posts

14/08/2017

Venancio Alves

Olá Welton, tudo bem?

Já tentou criar Procedures para cada regra de negócios, pois desta forma você irá otimizar tempo e fará o Update apenas chamando a procedure.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar