Consider setting up a snapshot to be built during the off hours. Your query can then run locally against the snapshot, urh, materialized view.