Optimizar where

11/04/2007 - 16:18 por Matias | Informe spam
Hola gente, tengo una duda; en una tabla que tengo muchos registos y en el
where se debe traer todos menos uno en particular, que es mas eficiente?:

WHERE codigo NOT IN ('PEPE')
o
WHERE codigo <> 'PEPE'

Me parece que la primera, estuve viendo el plan de ejecucion para ambas
sentecias, pero me arroja iguales resultados para las dos.

Gracias por su tiempo.
Saludos desde Córdoba(Arg.)

Preguntas similare

Leer las respuestas

#1 Maxi
11/04/2007 - 16:33 | Informe spam
Hola, si el plan te arroja lo mismo entonces no hay diferencias :)


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"Matias" escribió en el mensaje
news:%
Hola gente, tengo una duda; en una tabla que tengo muchos registos y en el
where se debe traer todos menos uno en particular, que es mas eficiente?:

WHERE codigo NOT IN ('PEPE')
o
WHERE codigo <> 'PEPE'

Me parece que la primera, estuve viendo el plan de ejecucion para ambas
sentecias, pero me arroja iguales resultados para las dos.

Gracias por su tiempo.
Saludos desde Córdoba(Arg.)


Respuesta Responder a este mensaje
#2 Maxi
11/04/2007 - 17:30 | Informe spam
Igual no mires solamente el costo, sino tambien que hacen, pero si ambos dan
0 entonces no hay diferencias a nivel performance


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"Matias" escribió en el mensaje
news:
OK, gracias, los dos planes arrojan costo 0, por eso tenia la duda.


"Maxi" escribió en el mensaje
news:
Hola, si el plan te arroja lo mismo entonces no hay diferencias :)


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"Matias" escribió en el mensaje
news:%
> Hola gente, tengo una duda; en una tabla que tengo muchos registos y en


el
> where se debe traer todos menos uno en particular, que es mas


eficiente?:
>
> WHERE codigo NOT IN ('PEPE')
> o
> WHERE codigo <> 'PEPE'
>
> Me parece que la primera, estuve viendo el plan de ejecucion para ambas
> sentecias, pero me arroja iguales resultados para las dos.
>
> Gracias por su tiempo.
> Saludos desde Córdoba(Arg.)
>
>






Respuesta Responder a este mensaje
#3 Matias
11/04/2007 - 17:30 | Informe spam
OK, gracias, los dos planes arrojan costo 0, por eso tenia la duda.


"Maxi" escribió en el mensaje
news:
Hola, si el plan te arroja lo mismo entonces no hay diferencias :)


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"Matias" escribió en el mensaje
news:%
> Hola gente, tengo una duda; en una tabla que tengo muchos registos y en


el
> where se debe traer todos menos uno en particular, que es mas


eficiente?:
>
> WHERE codigo NOT IN ('PEPE')
> o
> WHERE codigo <> 'PEPE'
>
> Me parece que la primera, estuve viendo el plan de ejecucion para ambas
> sentecias, pero me arroja iguales resultados para las dos.
>
> Gracias por su tiempo.
> Saludos desde Córdoba(Arg.)
>
>


Respuesta Responder a este mensaje
#4 Javier Loria
11/04/2007 - 17:31 | Informe spam
Hola Matias:
Muy rara vez habrá diferencia entre estas dos setencias, sin importar
como las interprete el SQL, y la razón la das cuando dices que debe traer
todos menos uno en particular.
Básicamente el servidor leera siempre todos, y luego aplicara la
condicion, por lo que nunca usara un indice para filtrar los datos :(
Los indices y por ende la mejora significativa en desempeño, se utilizan
solamente cuando las consultas son selectivas.
En algunas ocasiones el motor relacional, normaliza el SQL para hacerlo
mas eficiente, pero no es este el caso.
Saludos,


Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

"Matias" wrote in message
news:%
Hola gente, tengo una duda; en una tabla que tengo muchos registos y en el
where se debe traer todos menos uno en particular, que es mas eficiente?:

WHERE codigo NOT IN ('PEPE')
o
WHERE codigo <> 'PEPE'

Me parece que la primera, estuve viendo el plan de ejecucion para ambas
sentecias, pero me arroja iguales resultados para las dos.

Gracias por su tiempo.
Saludos desde Córdoba(Arg.)


Respuesta Responder a este mensaje
#5 Matias
11/04/2007 - 18:53 | Informe spam
Gracias Javier y Maxi

"Javier Loria" escribió en el mensaje
news:
Hola Matias:
Muy rara vez habrá diferencia entre estas dos setencias, sin importar
como las interprete el SQL, y la razón la das cuando dices que debe traer
todos menos uno en particular.
Básicamente el servidor leera siempre todos, y luego aplicara la
condicion, por lo que nunca usara un indice para filtrar los datos :(
Los indices y por ende la mejora significativa en desempeño, se


utilizan
solamente cuando las consultas son selectivas.
En algunas ocasiones el motor relacional, normaliza el SQL para


hacerlo
mas eficiente, pero no es este el caso.
Saludos,


Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

"Matias" wrote in message
news:%
> Hola gente, tengo una duda; en una tabla que tengo muchos registos y en


el
> where se debe traer todos menos uno en particular, que es mas


eficiente?:
>
> WHERE codigo NOT IN ('PEPE')
> o
> WHERE codigo <> 'PEPE'
>
> Me parece que la primera, estuve viendo el plan de ejecucion para ambas
> sentecias, pero me arroja iguales resultados para las dos.
>
> Gracias por su tiempo.
> Saludos desde Córdoba(Arg.)
>
>

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida