KB4563195 - FIX: sp_execute_external_script може не запускати R-скрипти, що використовують контекст обчислень RxLocalParallel або пакет doParallel R у SQL Server 2019

Застосовується до
SQL Server 2019 on Windows

Ознаки

Припустимо, що ви виконуєте R-скрипти, які використовують контекст обчислень RxLocalParallel або пакет doParallel R. Під час використання sp_execute_external_script сценаріїв, написаних мовою R, можна помітити, що запит може зависати під час виконання паралельних функцій.

Стан

Корпорація Microsoft підтвердила, що це одна з проблем з продуктами Microsoft, перелічених у розділі "Застосовується до".

Спосіб усунення проблеми

Цю проблему вирішено в такому сукупному оновленні для SQL Server:

Відомості про сукупні оновлення для SQL ServerSQL Server :

Кожне нове сукупне оновлення для SQL Server містить усі виправлення та виправлення системи безпеки, які входили до попереднього сукупного пакета оновлень. Перегляньте останні сукупні оновлення для SQL Server.

Спосіб вирішення

Щоб вирішити цю проблему без оновлення, додайте додатковий R-код у верхній частині сценарію в sp_execute_external_script. Код наступний:

<parallel - getNamespace("паралельний")

unlockBinding("makePSOCKcluster", parallel)

internalMakePSOCKcluster <- parallel::makePSOCKcluster

wrapperMakePSOCKcluster = function(...) {

args <- список(...)

Якщо (!(" outfile" %in% names(args)) || is.null(аргументи[["вихідні_файли"]]))

⁠{⁠

args[["outfile"]] <- tempfile()

⁠}⁠

do.call(internalMakePSOCKcluster, args)

⁠}⁠

parallel$makePSOCKcluster <- wrapperMakePSOCKcluster

lockBinding("makePSOCKcluster", parallel)

Посилання

Дізнайтеся, за допомогою яких термінів корпорація Майкрософт описує оновлення програмного забезпечення.