PL / SQL - Condições opcionais na cláusula where - sem sql dinâmico?

Eu tenho uma consulta onde nem todas as condições são necessárias. Veja um exemplo do que parece quando todas as condições são usadas:

select num
from (select distinct q.num
       from cqqv q
       where q.bcode = '1234567' --this is variable
             and q.lb = 'AXCT' --this is variable
             and q.type = 'privt' --this is variable
             and q.edate > sysdate - 30 --this is variable
       order by dbms_random.value()) subq
where rownum <= 10; --this is variable

As partes marcadas como--this is variable são as partes que, bem, variam! Se uma condição não for especificada, não haverá valor padrão. Por exemplo, se a entrada especificar "*" para q.type (mas deixar tudo o resto igual), a consulta deverá corresponder a tudo para o tipo e executar como:

select num
from (select distinct q.num
       from cqqv q
       where q.bcode = '1234567' --this is variable
             and q.lb = 'AXCT' --this is variable
             --and q.type = 'privt' --this condition ignored because of "type=*" in input
             and q.edate > sysdate - 30 --this is variable
       order by dbms_random.value()) subq
where rownum <= 10; --this is variable

Eu sei que é possível usar o SQL dinâmico para construir essa consulta em tempo real, mas eu estou querendo saber que tipo de problemas de desempenho isso poderia causar, e se há uma maneira melhor de fazer isso.

questionAnswers(5)

yourAnswerToTheQuestion