Mi google-fu y so-fu me están fallando aquí, así que también podría preguntar.TSQL: ¿Cuál es el orden correcto para unir tablas?
Tengo muchas consultas con varias combinaciones en ellas.
Dentro de una consulta, estoy uniendo encabezado/elemento/detalles, así como buscar varios bits de información para estos registros.
Al unirme, trato de mantener las cosas en orden de cómo se relacionan. Por ejemplo, mi encabezado tiene dos tablas de búsqueda, así que me uniré a ellas antes de unirme a mi tabla de elementos.
¿Es correcto?
¿Es mejor unirse a tablas más grandes antes de las tablas de búsqueda? ¿O viceversa?
¿Debo usar una sugerencia de loop
cuando me uno a tablas pequeñas, y una sugerencia de merge
cuando me una a openrowsets?
Estoy seguro de que la respuesta es "depende", pero algunas pautas generales para unir de manera efectiva y eficiente serían muy útiles. ¡Gracias!
En la mayoría de los casos, no debería necesitar especificar el tipo de combinación (merge/loop/hash). Si lo hace, probablemente existan problemas subyacentes que deberían resolverse en lugar de la curita de unión. –
A menos que sepa muy bien lo que está haciendo y comprenda los planes de ejecución de consultas, NUNCA use sugerencias de consulta. – JotaBe