【问题标题】:Optimization TSQL with R使用 R 优化 TSQL
【发布时间】:2017-11-16 07:52:24
【问题描述】:

我们在一个项目中在 Microsoft SQL Server 2016 上使用带有 R 的 TSQL。

问题是执行时间,R的使用或连接需要200ms到600ms之间的随机时间。

我认为这是一个配置问题,但我以前从未使用过。

请求示例:

EXEC sp_execute_external_script    
      @language = N'R'    
    , @script = N' 
         OutputDataSet <- as.data.frame(rnorm(100, mean = 50, sd =3));'    
    , @input_data_1 = N'   ;'    
      WITH RESULT SETS (([Density] float NOT NULL)); 

执行时间在 200 毫秒到 2000 毫秒之间。

如果有人已经使用过这种技术并有一些优化性能的技巧?

N.B:在我们的项目中,我们动态地使用这种请求,因此执行了很多请求,我们正在等待所有结果显示它们。这需要很多时间。我希望这只是 ssms 的配置问题

【问题讨论】:

    标签: sql-server r tsql ssms


    【解决方案1】:

    R 脚本的执行时间可能会有所不同,具体取决于 R 进程是否已可用于脚本执行。您可以通过使用任务管理器(或进程资源管理器)查找正在运行的 Rterm.exe 进程来验证这一点。

    所以你会注意到第一个请求可能很慢(~2000ms),而后续请求会更快(~200ms)。

    【讨论】:

    • 如上所示,R 脚本在 SQL Server 进程之外运行。由于在进程之间发送数据的开销和额外的 R 解释器执行时间,具有与原生 SQL 相同的性能是不可行的。你能简要解释一下你的场景和要求约 10-40 毫秒吗?您的 R 脚本是否在进行预测或其他类型的数据分析?
    • 我们只是根据大量参数动态创建 R 脚本,并使用 R 的一些本机函数进行一些计算。显然,这不是很好的用法,我们希望将其用作 api 服务,但性能太差了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多