Hola amigos, tengo este SP que me funciona bien, pero el tema es que me dijeron que no es performance y que debo mejorarlo.
Ya lo revisé y no le encuentro la vuelta, me pueden ayudar cómo debo mejorarlo.
La idea de este SP es si un Aula o Curso no tiene un horario definido entonces realizar un insert o de lo contrario update.
Código SQL:
Ver originalCREATE PROCEDURE HORARIO_AULA_ACTUALIZAR_INSERTAR
@Aula_Id INT,
@Lunes BIT,
@Martes BIT,
@Miercoles BIT,
@Jueves BIT,
@Viernes BIT,
@HoraDesde DATETIME,
@HoraHasta DATETIME
AS
BEGIN
IF ((SELECT COUNT(hc.Id) FROM HORARIO_AULA ha WHERE ha.Aula_id = @Aula_Id ANDha.Activo = 1) > 0)
BEGIN
UPDATE HORARIO_AULA SET
Lunes = @Lunes
,Martes = @Martes
,Miercoles = @Miercoles
,Jueves = @Jueves
,Viernes = @Viernes
,Sabado = @Sabado
,HoraDesde = @HoraDesde
,HoraHasta = @HoraHasta
WHERE Aula_Id = @Aula_Id AND
Activo = 1
END
ELSE
BEGIN
DECLARE @Maximo_Id BIGINT
SELECT @Maximo_Id = ISNULL((COUNT(Id)+1), 1) FROM HORARIO_AULA
INSERT INTO HORARIO_AULA (Id, Aula_Id, Lunes, Martes, Miercoles, Jueves, Viernes, HoraDesde, HoraHasta, Activo)
VALUES (@Maximo_Id, @Aula_Id, @Domingo, @Lunes, @Martes, @Miercoles, @Jueves, @Viernes, @HoraDesde, @HoraHasta, 1)
END
END
Saludos,