【问题标题】:SAS stored process server vs workspace serverSAS 存储过程服务器与工作区服务器
【发布时间】:2014-01-03 21:50:06
【问题描述】:

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

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

【问题讨论】:

    标签: sas


    【解决方案1】:

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

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

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

    所以有 2 个用例,这些服务器解决了它们。

    【讨论】:

      【解决方案2】:

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

      1. 身份。 存储过程服务器在 SAS General Servers 组中配置的系统帐户 (&sysuserid) 下运行,默认为 sassrv。这将影响操作系统级别的权限(例如数据库访问)。工作区会话始终在客户端帐户(登录用户)凭据下运行。
      2. 会话。 存储过程服务器可以使用通过使会话保持活动状态一段时间(并使用会话 ID 再次访问同一会话)来保留“状态”的选项,然而 - 不惜一切代价避免这种模式!原因是,此会话将占用您的多桥端口之一,并对负载平衡造成严重破坏。这也是一个糟糕的设计选择。

      存储过程和工作区服务器都可以configured 提供池会话(通用会话保持活动状态以便重复使用,避免频繁请求的启动成本)。

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

      【讨论】:

      • Allan - 我只在我的站点上使用工作区服务器,而且我肯定每天都使用_webout 文件引用来发回结果。
      • @RobertPenr​​idge - 确实你是对的。差异的文档在这里:documentation.sas.com/… - 我已经更新了我的答案。
      • 感谢您的链接。似乎我可能想更新我的站点以使用池工作区服务器...
      • 确实,应该始终限制创建 STP(使用 sassrv)的能力,并且创建的任何流程都应该经过适当的发布管理/审核流程。
      猜你喜欢
      • 1970-01-01
      • 2018-11-13
      • 1970-01-01
      • 2016-11-25
      • 1970-01-01
      • 2016-04-15
      • 2012-02-22
      • 1970-01-01
      • 2018-04-01
      相关资源
      最近更新 更多