【发布时间】:2014-01-03 21:50:06
【问题描述】:
SAS 有一个运行存储过程的存储过程服务器和一个运行 SAS 代码的工作区服务器。但是存储过程不过是SAS代码语句的组合,那么为什么工作区服务器就不能运行SAS代码呢?
我试图理解为什么 SAS 开发人员提出了一个单独的服务器的概念,专门用于存储过程。
【问题讨论】:
标签: sas
SAS 有一个运行存储过程的存储过程服务器和一个运行 SAS 代码的工作区服务器。但是存储过程不过是SAS代码语句的组合,那么为什么工作区服务器就不能运行SAS代码呢?
我试图理解为什么 SAS 开发人员提出了一个单独的服务器的概念,专门用于存储过程。
【问题讨论】:
标签: sas
存储过程服务器在运行之间重用 SAS 过程。它是一个无状态服务器,旨在运行小型预先编写的程序并返回结果。服务器维护一个进程池并将请求分配给该池。这最大限度地减少了运行作业的时间,因为没有启动/关闭进程开销。
工作区服务器是为 1 个用户启动的 SAS 进程。每个用户连接都会在服务器上获得一个新的 SAS 进程。该服务器旨在运行更具交互性的进程,用户在其中运行某些东西,查看输出,然后运行其他东西。代码不必预先编写并存储在服务器上。在这种情况下,启动时间不是限制因素。
此外,工作区服务器可以提供对服务器的额外访问。程序员可以使用此服务器访问 SAS 数据集(通过 .NET 中的 ADO 或 Java 中的 JDBC)以及服务器上的文件。
所以有 2 个用例,这些服务器解决了它们。
【讨论】:
从开发人员的角度来看,两个最大的区别是:
&sysuserid) 下运行,默认为 sassrv。这将影响操作系统级别的权限(例如数据库访问)。工作区会话始终在客户端帐户(登录用户)凭据下运行。 存储过程和工作区服务器都可以configured 提供池会话(通用会话保持活动状态以便重复使用,避免频繁请求的启动成本)。
为了进一步解决您的问题 - 存储过程是指向(或也可以包含)原始 sas 代码的元数据对象。存储过程可以在任一类型(存储过程或工作空间)的服务器上运行。选择哪一个取决于您的上述功能需求,以及根据您的池和负载平衡配置的性能考虑。
【讨论】:
_webout 文件引用来发回结果。