Otimização de Query

SQL Server

14/07/2017

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

Curtidas 0

Respostas

Venancio Alves

Venancio Alves

14/07/2017

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.
GOSTEI 0
POSTAR