当 SQL Server 使用 SQL Launchpad 启动外部运行时(例如 R 或 Python)时sp_execute_external_script
,外部运行时进程的生命周期是多少?
每个脚本执行是否都有sp_execute_external_script
自己的外部流程实例,或者外部流程是否一直存在,直到它在一定时间内处于非活动状态(例如,如果我使用相同的 SQL 会话执行以相同语言编写的另一个脚本,现有流程可能会被重用)?
当 SQL Server 使用 SQL Launchpad 启动外部运行时(例如 R 或 Python)时sp_execute_external_script
,外部运行时进程的生命周期是多少?
每个脚本执行是否都有sp_execute_external_script
自己的外部流程实例,或者外部流程是否一直存在,直到它在一定时间内处于非活动状态(例如,如果我使用相同的 SQL 会话执行以相同语言编写的另一个脚本,现有流程可能会被重用)?
出于安全原因,不会重用 Python 进程。每次调用都
sp_execute_external_script
使用自己的流程实例,至少就 Python 而言是这样。由于 Microsoft SQL Server 的 Python 和 R 集成非常相似,我怀疑R 也是如此,但我不能 100% 肯定地说。
参考:SQL Server 工程团队项目经理 Tobias Ternström 发表的reddit 评论