У нас есть хранимая процедура, которая используется для выбора миллиона записей. Хранимая процедура выглядит примерно так:
CREATE PROCEDURE ABC(@CustID varchar(20))
AS
BEGIN
WITH temporaryTable as (SELECT ab,bc,... FROM Table); // a very huge select query
SELECT a,b, ..., l FROM temporaryTable OUTER JOIN(some_table1)... union all SELECT m,n,..., z FROM temporaryTable OUTER JOIN(some_table2); // two very huge select query with union
END
Мне было поручено извлечь результат с помощью этой хранимой процедуры и записать его в файл CSV с использованием Java и Spring Boot.
Я пыталсяспособ spring-data-jpa @ NamedStoredProcedureQuery для получения результата и записи его в CSV с помощью opencsv , но это слишком медленно. Я использовал setFirstResult () & setMaxResult () методы, но не увидел никакой разницы ( возможно, для этого требуется, чтобы хранимая процедура была настроена по-другому, хотя я не уверен. )
Сейчас я пытаюсь использовать StoredProcedureItemReader Spring Batch (все еще настраиваю ...) для чтения данных и FlatFileItemWriter для записи в CSV, но я новичок в этом и неуверен, поможет ли это или нет, хотя я думаю, что эта ссылка (https://docs.spring.io/spring-batch/4.1.x/reference/html/scalability.html#scalability) может помочь.
Мне нужно направление, в котором я могу получить желаемый результат.
Спасибои как всегда, любой полезный жест от сообщества будет высоко оценен !!!