Rendimiento

06/04/2004 - 16:19 por Yasmin | Informe spam
Buen día Grupo,

Alguien sabe en donde puedo encontrar información acerca
de las buenas prácticas de desarrollo para utilizar
correctamente los índices, es decir, necesito optimizar
unos procedimientos pero en ocasiones no se cual sentencia
es la mas apropiada por ejemplo:

Se debe utilizar en la condicion:

Select codigo
From Bloqueados (index = Idx_codigo)
Where codigo Not in ( Select cod_prod From tbProductos )

O mejor :

Select codigo
From Bloqueados (index = Idx_codigo)
Where Not Exists ( Select cod_prod From tbProductos
Where cod_prod = codigo )


Es mejor utilizar el not in o el not exists

Preguntas similare

Leer las respuestas

#1 Carlos
06/04/2004 - 16:32 | Informe spam
Hay un aplicativo que puedes descargar desde la pagina de
microsoft en la pagina de sql server.
Buen día Grupo,

Alguien sabe en donde puedo encontrar información acerca
de las buenas prácticas de desarrollo para utilizar
correctamente los índices, es decir, necesito optimizar
unos procedimientos pero en ocasiones no se cual


sentencia
es la mas apropiada por ejemplo:

Se debe utilizar en la condicion:

Select codigo
From Bloqueados (index = Idx_codigo)
Where codigo Not in ( Select cod_prod From tbProductos )

O mejor :

Select codigo
From Bloqueados (index = Idx_codigo)
Where Not Exists ( Select cod_prod From tbProductos
Where cod_prod = codigo )


Es mejor utilizar el not in o el not exists


.

Respuesta Responder a este mensaje
#2 Michael
06/04/2004 - 17:51 | Informe spam
Puedes indicarnos el nombre del aplicativo.

Hay un aplicativo que puedes descargar desde la pagina de
microsoft en la pagina de sql server.
Buen día Grupo,

Alguien sabe en donde puedo encontrar información acerca
de las buenas prácticas de desarrollo para utilizar
correctamente los índices, es decir, necesito optimizar
unos procedimientos pero en ocasiones no se cual


sentencia
es la mas apropiada por ejemplo:

Se debe utilizar en la condicion:

Select codigo
From Bloqueados (index = Idx_codigo)
Where codigo Not in ( Select cod_prod From tbProductos )

O mejor :

Select codigo
From Bloqueados (index = Idx_codigo)
Where Not Exists ( Select cod_prod From




tbProductos
Where cod_prod = codigo )


Es mejor utilizar el not in o el not exists


.



.

Respuesta Responder a este mensaje
#3 Miguel Egea
06/04/2004 - 18:10 | Informe spam
Yasmin, ninguna de las dos, deja a SQL que eliga los índices, hay muy muy
muy pocos casos en los que forzarle a usar un índice puede tener algún
beneficio. Si quieres un consejo, evita not in y not exist
Algo así..
Select codigo from bloqueados left join tbProductos on
bloqueados.codigo=tbproductos.cod_prod
where tbproductos.cod_prod is null
Te dará seguramente el mismo plan de ejecución en los tres casos, ya que el
optimizador de consultas es capaz de darse cuenta de estas historias, pero
en otros casos, con subselects de este tipo puede no ser así...


Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores
http://www.portalsql.com

(Quita el online si me tienes que mandar un correo)



"Yasmin" escribió en el mensaje
news:18d9c01c41be2$3e270540$
Buen día Grupo,

Alguien sabe en donde puedo encontrar información acerca
de las buenas prácticas de desarrollo para utilizar
correctamente los índices, es decir, necesito optimizar
unos procedimientos pero en ocasiones no se cual sentencia
es la mas apropiada por ejemplo:

Se debe utilizar en la condicion:

Select codigo
From Bloqueados (index = Idx_codigo)
Where codigo Not in ( Select cod_prod From tbProductos )

O mejor :

Select codigo
From Bloqueados (index = Idx_codigo)
Where Not Exists ( Select cod_prod From tbProductos
Where cod_prod = codigo )


Es mejor utilizar el not in o el not exists
Respuesta Responder a este mensaje
#4 Javier Loria
06/04/2004 - 19:48 | Informe spam
Hola Carlos:
Un comentario adicional, es particularmente imporante la sintaxis que te
propone Miguel cuando la cantidad de filas es importante, cuando son pocas
es trivial la diferencia. En todo caso yo uso el codigo recomendado por
Miguel en consultas pequeneas y grandes porque es mas facil darle
mantenimiento.
Saludos,

Javier Loria
Costa Rica
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.
Miguel Egea escribio:
Yasmin, ninguna de las dos, deja a SQL que eliga los índices, hay muy
muy muy pocos casos en los que forzarle a usar un índice puede tener
algún beneficio. Si quieres un consejo, evita not in y not exist
Algo así..
Select codigo from bloqueados left join tbProductos on
bloqueados.codigo=tbproductos.cod_prod
where tbproductos.cod_prod is null
Te dará seguramente el mismo plan de ejecución en los tres casos, ya
que el optimizador de consultas es capaz de darse cuenta de estas
historias, pero en otros casos, con subselects de este tipo puede no
ser así...
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida