KB4563195 – КОРЕКЦИЯ: 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 Server:

Всяка нова кумулативна актуализация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били включени в предишната кумулативна актуализация. Прегледайте последните кумулативни актуализации за SQL Server:

Заобиколно решение

За да заобиколите проблема, без да го актуализирате, можете да включите допълнителен R код в горната част на скрипта в sp_execute_external_script. Кодът е следният:

parallel <- getNamespace("parallel")

unlockBinding("makePSOCKcluster"; parallel)

internalMakePSOCKcluster <- parallel::makePSOCKcluster

wrapperMakePSOCKcluster = function(...) {

args <- list(...)

if (!(" изходящ файл" %in% names(args)) || is.null(args[["изходящ файл"]]))

⁠{⁠

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

⁠}⁠

do.call(internalMakePSOCKcluster, args)

⁠}⁠

parallel$makePSOCKcluster <- wrapperMakePSOCKcluster

lockBinding("makePSOCKcluster"; parallel)

Справки

Научете повече относно терминологията, която Microsoft използва за описване на актуализациите на софтуера.