Índices em p.model_view, l.ARL_SEARCH_NUMBER se você não vai se livrar de JOINs.
Na verdade, ele pode ser otimizado dependendo da quantidade real de dados e seus valores (presença de NULLs) pelo uso de:
1. Monitorar o plano de execução da consulta e, se não for bom, colocar dicas de consulta para o compilador ou trocar JOINs por subconsultas para que o compilador use outro tipo de junção dentro dele (merge/nested loops/hashs/whatever)
2. Fazendo um procedimento armazenado com lógica mais complicada, porém mais rápida
3. Fazendo atualizações por pequenas porções