Saludos Colegas:
Tengo una disyuntiva de cual de los dos metodos es mas optimo a la hora de
la ejecucion. Incluso en el Execution Plan, fueron exactamente igual. A
continuacion expongo la consulta.
DECLARE @IdMarca int
DECLARE @IdTipoEquipo int
DECLARE @cModelo varchar(50)
DECLARE @cDescripcion varchar(100)
SET @IdMarca = 7
SET @IdTipoEquipo = -1
SET @cModelo = 'EC'
SET @cDescripcion = 'VID'
Select MOD.IdModelo, MOD.cModelo, MOD.cDescripcion, MOD.IdTipoEquipo,
MOD.IdMarca, MAR.cMarca, TEQ.cTipoEquipo FROM
_C_Modelos MOD INNER JOIN (SELECT * FROM _C_Marcas MAR WHERE (@IdMarca = -1
OR MAR.IdMarca = @IdMarca) )MAR ON MOD.IdMarca = MAR.IdMarca
INNER JOIN (SELECT * FROM _C_TipoEquipos TEQ WHERE (@IdTipoEquipo = -1 OR
TEQ.IdTipoEquipo = @IdTipoEquipo))TEQ ON MOD.IdTipoEquipo = TEQ.IdTipoEquipo
clasificadores
Select MOD.IdModelo, MOD.cModelo, MOD.cDescripcion, MOD.IdTipoEquipo,
MOD.IdMarca, MAR.cMarca, TEQ.cTipoEquipo FROM
_C_Modelos MOD INNER JOIN _C_Marcas MAR ON MOD.IdMarca = MAR.IdMarca
INNER JOIN _C_TipoEquipos TEQ ON MOD.IdTipoEquipo =
TEQ.IdTipoEquipo
WHERE (@IdMarca = -1 OR MAR.IdMarca = @IdMarca) AND (@IdTipoEquipo = -1 OR
TEQ.IdTipoEquipo = @IdTipoEquipo)
Ahora...cual de las dos es más optima????
Gracias anticipadas.
Leandro
Leer las respuestas