SAS存储过程服务器vs工作区服务器

时间:2014-01-03 21:50:06

标签: sas

SAS有一个存储过程服务器,用于运行存储过程和一个运行SAS代码的工作区服务器。但是存储过程只不过是SAS代码语句的组合,为什么工作区服务器不能运行SAS代码?

我试图理解为什么SAS开发人员为存储过程提出了单独服务器的概念。

2 个答案:

答案 0 :(得分:2)

存储的进程服务器在运行之间重用SAS进程。它是一个无状态服务器,用于运行小型预编程序并返回结果。服务器维护一个进程池并将请求分配给该池。这样可以最大限度地减少运行作业的时间,因为没有启动/关闭进程开销。

工作区服务器是为1个用户启动的SAS进程。每个用户连接都在服务器上获得一个新的SAS进程。此服务器旨在运行更多交互式进程,其中用户运行某些内容,查看输出,然后运行其他内容。代码不必预先编写并存储在服务器上。在这种情况下,启动时间不是限制因素。

此外,工作区服务器可以提供对服务器的附加访问。程序员可以使用此服务器访问SAS数据集(通过.NET中的ADO或Java中的JDBC)以及服务器上的文件。

因此有2个用例,这些服务器可以解决这些问题。

答案 1 :(得分:2)

从开发人员的角度来看,两个最大的区别是:

  1. 标识。存储的进程服务器在SAS General Servers组中配置的系统帐户(&sysuserid)下运行,默认情况下为sassrv。这将影响操作系统级别的权限(例如数据库访问)。工作区会话始终在客户端帐户(登录用户)凭据下运行。
  2. 流式搜索结果。使用_webout fileref将结果传回客户端的选项只能通过存储的进程服务器获得。
  3. 存储过程和工作区服务器都可以configured来提供池化会话(保持活动的会话可以重复使用,避免频繁请求的启动成本)。

    为了进一步解决您的观点 - 存储过程是指向(或也可以包含)原始sas代码的元数据对象。存储过程可以在服务器的任一类型(存储过程或工作空间)上运行。其选择取决于您上面的功能需求,以及根据池和负载平衡配置的性能考虑因素。