首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Microsoft-R比SQL慢得多。

Microsoft-R比SQL慢得多。
EN

Stack Overflow用户
提问于 2017-11-20 11:35:49
回答 1查看 190关注 0票数 0

我使用sp_execute_external_script在Microsoft .中运行一个R脚本,我从C#调用它。但是我发现了一个问题,虽然它并不复杂,它只工作在6000行左右,但大概需要7秒才能完成。因此,我用纯SQL翻译了脚本,只需2-3秒(也来自C#)。所以,我检查了如下所示的性能,整个SP平均持续1.877秒,R脚本1.56 (system.time)。所以我的问题是为什么会有这样的区别?老实说,我不明白为什么SQL的速度要快得多,而不应该有太大的差异。

代码语言:javascript
复制
declare @start datetime = getdate()

EXEC sp_execute_external_script 
    @input_data_1   = N'select * from table' -- only 6000 rows approx.
    @name           = N't', 
    @params         = N'',
    @rscript        = N'
        # my R script
        OutputDataSet <- data.frame(field1, field2)
    '
declare @executionTimeInMilliseconds int = datediff(ms, @start, getdate())

print @executionTimeInMilliseconds
EN

回答 1

Stack Overflow用户

发布于 2017-11-20 11:43:22

从SQL本身调用SQL通常要快得多,因为它不需要任何上下文切换、不需要额外的解析和调用其他进程。

到目前为止,SQL执行引擎是经过优化的,其本身之外的每一步都比较慢。我可以想象这里也是如此。当然,一个小函数的开销比长期运行的函数要高得多,这可能会扭曲您的度量标准。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47391113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档