Симптоми
Да предположим, че изпълнявате 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 използва за описване на актуализациите на софтуера.