La única manera de optimizar esa consulta es tener la base de datos, o sea, sólo puedes hacerlo tú.
Has dado una pista muy buena, mira esa vi_producto_bodega que parece que es la culpable.
Te aconsejo que uses un programa como
IB Planalyzer para depurar la consulta hasta encontrar la forma óptima de hacerla.