Análise de custo de query

Olá, pessoal

Estou fazendo uma query aqui que visa saber se um arquivo foi recebido por uma empresa em determinado período e me deparei com uma situação curiosa.
Gostaria, se possível, de uma ajuda para tentar entender e ver se consigo melhorar o custo.

A parte da query com o count é um trecho que eu retirei de uma query maior para facilitar a visualização e coloquei ela em um select a partir da tabela de empresa.

Se eu realizar esta query sem fazer internamente o join com empresa, conforme destacado, o custo, no meu banco local, é de 16.
Se eu realizar esta query fazendo internamente o join com empresa, conforme destacado, o custo, no meu banco local, é de 39997.

Estou fazendo alguma coisa errado? Não consegui entender o por que de eu adicionar o filtro por empresa e o custo disparar dessa forma.

select (select count(*)
  from (select ad.ID_ORIGEM_ARQUIVO_ARQ,l.id_empresa
          from edi_arquivo_fisico af
    inner join edi_arquivos_diarios ad on ad.id_arquivo_fisico = af.id_arquivo_fisico
    inner join edi_arq_diarios_arq_loja adl on adl.id_arquivos_diarios = ad.id_arquivos_diarios
    inner join edi_arquivo_loja al on al.id_arquivo_loja = adl.id_arquivo_loja
    inner JOIN CAD_LOJA l ON l.id_loja = al.ID_LOJA
         where af.ID_ORIGEM_ARQUIVO = 11
          and l.id_empresa = emp.id_empresa
          and ad.ID_ORIGEM_ARQUIVO_ARQ = 10
          and al.ID_ORIGEM_ARQUIVO = 11
          AND af.dt_inclusao >= sysdate-3
          AND af.dt_inclusao <= sysdate-3
     group by ad.ID_ORIGEM_ARQUIVO_ARQ, l.id_empresa)) qtd 
 from cad_empresa emp;