Улучшите время первого запуска в sql r сервисах - PullRequest
0 голосов
/ 03 февраля 2020

Я использую службу r в SQL Server 2016 для создания текстового файла с сообщением в нем. Выход хранимой процедуры - это двоичный файл этого файла. Я использую библиотеку hexView, которую я установил в r моего сервера. Следующая функция, которую я создал в SQL:

CREATE PROCEDURE [tmp].[Message] @MessageV NVARCHAR(1000)
    ,@FileName NVARCHAR(100)
AS
BEGIN
    DECLARE @Message NVARCHAR(1000)
        ,@FName NVARCHAR(100)

    EXECUTE sp_execute_external_script @language = N'R'
        ,@script = N'
library(hexView)
File <- paste0(FName,".txt")
write.table(Message, file = File, row.names = FALSE, col.names = FALSE, quote = FALSE)
OutputDataSet <- data.frame(readRaw(File)$fileRaw)
'
        ,@params = N' @FName NVARCHAR(100)
             ,@Message NVARCHAR(1000)'
        ,@Message = @MessageV
        ,@FName = @FileName
END

И для запуска этой функции.

exec [tmp].[Message] @MessageV = 'This is a random message', @FileName = 'TextFile'

При первом ее запуске требуется около 25 секунд. Непосредственно последние запуски занимают только 1 се c. Но если я рутирую это как 20 минут спустя, это снова занимает 25 секунд. Я думаю, что дополнительное время - это запуск службы r внутри SQL.

. Есть ли способ или конфигурация, позволяющие поддерживать службы R каждый момент так, чтобы при каждом запуске потребовалось 1 сек c?

Я много искал, но не нашел ничего подходящего. Спасибо с уважением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...