Definitivamente no es la opción 2. Si no necesita los datos, no los recupere. Simple. Sería increíblemente ineficiente unirse a tablas (especialmente las grandes) cuando no necesita los datos. Puede optar por la opción 1 o usar SQL dinámico para crear la consulta. Luego juntaría algunos casos de prueba y ejecutaría el plan de ejecución para ver cómo se está desempeñando su consulta.