Qué enfoque es mejor para recuperar datos de una database

Estoy confundido acerca de seleccionar dos enfoques.

Guión
hay dos tablas Table 1 y Table 2 respectivamente. Table 1 contiene datos del usuario, por ejemplo, nombre, apellido, etc.

Table 2 contiene los automobilees que cada usuario tiene con su descripción. es decir Color , Registration No etc.

Ahora, si quiero tener toda la información de todos los usuarios, ¿qué enfoque es mejor completar en un time mínimo?

Enfoque 1.

Consulte todas las filas en la Table 1 y guárdelas todas en una list por ej.

luego Pasa por la list y consulta y obtén datos de la Table 2 según el usuario guardado en el primer paso.

Enfoque 2

Consulte todas las filas y, al save esa fila, obtenga todos sus valores de la table 2 y guárdelos también.

Si pienso en los processs del sistema, entonces creo que podría ser el mismo porque hay el mismo número de loggings para procesar en ambos enfoques.

Si hay alguna otra idea mejor, por favor avíseme

Sus dos enfoques tendrán aproximadamente el mismo performance (lento debido a las consultas N + 1). Sería más rápido hacer una sola consulta como esta:

 select * from T1 left join T2 on ... order by T1.PrimaryKey 

Su aplicación cliente puede interpretar los resultados y tener todos los datos en una sola consulta. Una alternativa sería:

 select *, 1 as Tag from T1 union all select *, 2 as Tag from T2 order by T1.PrimaryKey, Tag 

Esto es solo un pseudo código, pero podrías hacerlo funcionar.

La consulta de unión total tendrá un performance sorprendentemente bueno porque el server sql hará una "unión de fusión" que funciona como una combinación de fusión. Este patrón también funciona para las relaciones entre padres e hijos de varios niveles, aunque no tan bien.