Я пытаюсь загрузить результат SQL-запроса в новую таблицу после некоторого преобразования.Но даже самый простой скрипт дает сбой.
DECLARE @inquery nvarchar(max) = N'
SELECT TOP 2000000 * from SQL Table'
DECLARE @Rscript nvarchar(max) = N'
sqlConnString = "Driver={SQL Server};SERVER='+@@SERVERNAME+N';DATABASE='+DB_NAME()+N';Trusted_Connection=True;"
outTabName <- "OutputTable"
outTabDS <- RxSqlServerData(table = outTabName, connectionString = sqlConnString)
rxDataStep(inData = InputDataSet, outFile = outTabDS, maxRowsByCols = NULL, rowsPerRead = 500000)
'
EXEC sp_execute_external_script @language = N'R'
, @script = @Rscript
, @input_data_1 = @inquery
WITH result sets none;
Когда я запускаю это с 1M строк, он работает, но не может писать с 2M строк.Если функция RevoScaleR обрабатывает данные в блоках, то почему проблема с большим количеством строк?Потому что тот же самый запрос приводит к SQL-серверу.Максимальный процент памяти также выделяется для 50 из 32 ГБ ОЗУ.