Simptome
Să presupunem că rulați scripturi R care utilizează contextul de calcul RxLocalParallel sau pachetul R doParallel. Atunci când utilizați sp_execute_external_script pentru a rula scripturi scrise în R, observați că interogarea se poate bloca în timp ce rulează funcțiile paralele.
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft care sunt listate în secțiunea „Se aplică la”.
Rezolvare
Această problemă este remediată în următoarea actualizare cumulativă pentru SQL Server:
Despre actualizările cumulative pentru SQL Server:
Fiecare actualizare cumulativă nouă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:
Soluție
Pentru a rezolva problema fără a actualiza, puteți include un cod R suplimentar în partea de sus a scriptului în sp_execute_external_script. Codul este următorul:
parallel <- getNamespace("parallel")
unlockBinding("makePSOCKcluster", paralel)
internalMakePSOCKcluster <- paralel::makePSOCKcluster
wrapperMakePSOCKcluster = function(...) {
args <- list(...)
if (!(" outfile" %in% names(args)) || is.null(args[["outfile"]]))
{
args[["outfile"]] <- tempfile()
}
do.call(internalMakePSOCKcluster, args)
}
parallel$makePSOCKcluster <- wrapperMakePSOCKcluster
lockBinding("makePSOCKcluster", paralel)
Referințe
Aflați despre terminologia pe care o utilizează Microsoft pentru a descrie actualizările de software.