Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Cual de estos dos SELECT es mas rápido??

Estas en el tema de Cual de estos dos SELECT es mas rápido?? en el foro de SQL Server en Foros del Web. Hola, tengo una duda con respecto a las consultas. La idea seria listar completa toda la tabla de personas con su correspondiente equipo. Cual de ...
  #1 (permalink)  
Antiguo 24/11/2010, 07:50
 
Fecha de Ingreso: febrero-2008
Mensajes: 578
Antigüedad: 16 años, 2 meses
Puntos: 3
Cual de estos dos SELECT es mas rápido??

Hola, tengo una duda con respecto a las consultas.
La idea seria listar completa toda la tabla de personas con su correspondiente equipo. Cual de estos dos sería mas rápido, y porque ??

SELECT PER.nombre,EQU.nombre FROM personas AS PER, equipos AS EQU
WHERE (PER.nombre LIKE 'J') AND (EQU.codigequ = PER.codigequ)


SELECT PER.nombre,EQU.nombre FROM personas AS PER
LEFT JOIN equipos AS EQU ON (EQU.codigequ = PER.codigequ)
WHERE PER.nombre LIKE 'J'


------------------------------

O otra cosa, si tengo un indice con dos campos: "NOMBRE" y "APELLIDO", y en una consulta hago un WHERE donde nombre = 'XX' AND apellido = 'XX' ORDER BY por DNI, es recomendable que el campo DNI sea un índice ??

Ya sé que el DNI debe ser único y todo eso, esto solo es un ejemplo para sacarme algunas dudas.

Y si el ORDER BY sería DNI ASC, APELLIDO ASC, entoneces la clave en este caso debe ser con dos campos: "DNI" y "APELLIDO", no ?

es decir, tendría por ahora dos claves:
1) nombre - apellido
2) dni - apellido

es correcto ??
  #2 (permalink)  
Antiguo 24/11/2010, 09:26
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Cual de estos dos SELECT es mas rápido??

Buenos días Jamati, las consultas como tal no te regresarían los mismos resultados, por lo tanto no puede ser comparado su performanse... me explico, la primer consulta hace una unión explícita (equivalente a un INNER JOIN) mientras que en la consulta de abajo estás utilizando un LEFT JOIN

de cualquier forma, utilizar JOIN's es más eficiente que hacer las uniones explícitas (como en el primer caso), por lo que deberías siempre utilizar esta forma de unión.

Con respecto a los campos llaves, estos no dependen de si se van a colocar en el ORDER BY o no, es decir, puedes poner campos en esta sección sin que formen parte de una llave:

Ejemplo -> puedes obtener el total de artículos vendidos y hacer que tu consulta se ordene de mayor a menor. Este es un campo calculado y por supuesto no forma parte de la llave, sin embargo no hay ningún problema para utilizarlo en el Order by.

Saludos
Leo.
  #3 (permalink)  
Antiguo 24/11/2010, 10:18
 
Fecha de Ingreso: febrero-2008
Mensajes: 578
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: Cual de estos dos SELECT es mas rápido??

Gracias leonardo_josue,

Estuve chequeando lo qu escribi, y efectivametne no es lo mismo. Igualmente me quedó claro lo que me decis sobre usar siempre los JOIN, eso es principalmente lo que quería saber.

Muchas gracias.

Etiquetas: dos, mas, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:44.