Пробовали разделять получение данных с использованием лимита и офсета. Сталкивался с подобной проблемой. на локальной машине при вставке около 10к записей, доходил до 3к максимум, а потом подвисал. тогда как на вдс, с легкостью вставлял 100к
Через методы сет устанавливается значение переменной. из за обертки над ней, при установке переменной инициализируется вызов там где она получается. курсоры которыми получаются данные из базы реактивны по умолчанию.