Проблема с производительностью при объединении списка в один столбец (значение, разделенное запятой) - PullRequest
0 голосов
/ 17 июня 2019

Я хочу объединить столбец с несколькими значениями и объединить их в виде списка значений, разделенных запятыми, в одно поле.SQL-запрос работает, однако я думаю, что у меня возникают проблемы с производительностью.

После 30 минут загрузки кода SQL возникают проблемы с тайм-аутом: DataSource.Error: Microsoft SQL: время выполнения истекло.Время ожидания истекло до завершения операции, или сервер не отвечает.

Всякий раз, когда я выбираю 1000 верхних строк, он все равно загружается в течение всей минуты.

LEDGERTRANS.TXT являетсяstring, а также с MAX (), окружающим его, это дает мне тайм-аут.

MRPRJPROJTRANSPOSTING имеет 2,5M строк LEDGERTRANS +/- 5M строк, хотя я присоединяюсь только к тому, что мне нужно от него.

Следующий код - то, что я использую:

SELECT 
MRPRJPROJTRANSPOSTING.VOUCHER,
[Factuuromschrijving(en)] = STUFF(
    (SELECT ',' + LEDGERTRANS.TXT 
        FROM LEDGERTRANS
        WHERE LEDGERTRANS.VOUCHER = MRPRJPROJTRANSPOSTING.VOUCHER 
AND LEDGERTRANS.DATAAREAID = MRPRJPROJTRANSPOSTING.DATAAREAID FOR 
XML PATH (''))
        , 1, 1, '' )
FROM MRPRJPROJTRANSPOSTING

Может быть, есть другой способ сделать подобное соединение?

С уважением, Игорь

...