【发布时间】:2013-09-11 01:26:58
【问题描述】:
为了利用 Oracle 服务器大得多的磁盘空间和 RAM,是否可以使用 ODBC 接口在存储在服务器上的数据集上运行 SAS 过程(例如,proc glimmix 或 proc nlmixed)?
或者我是否仅限于通过 ODBC 将数据集提取到我的 PC,而不是在数据驻留在服务器上时使用 SAS 实际操作或分析数据?
【问题讨论】:
为了利用 Oracle 服务器大得多的磁盘空间和 RAM,是否可以使用 ODBC 接口在存储在服务器上的数据集上运行 SAS 过程(例如,proc glimmix 或 proc nlmixed)?
或者我是否仅限于通过 ODBC 将数据集提取到我的 PC,而不是在数据驻留在服务器上时使用 SAS 实际操作或分析数据?
【问题讨论】:
归根结底,假设您正在做任何复杂的事情(例如 GLIMMIX),一些工作必须由 SAS 在您的 PC 上完成。 SAS(尤其是 9.3 或更高版本)非常聪明地让数据库做尽可能多的工作;例如,甚至某些 PROC MEANS 也可能在数据库端完全执行。
但是,这仅在无需特殊措施即可将过程转换为数据库功能的情况下才是正确的。 SAS 不太可能在数据库端执行回归,因为那不是原生的 Oracle。在某种程度上,数据必须通过(可能有限的)带宽。
您当然可以做很多事情来限制您在 SAS 中必须做的事情。任何预汇总都可以在 Oracle 中完成;实际PROC GLIMMIX 之前的任何其他数据准备工作都可以在Oracle 中完成。您当然可以通过简单地使用 libname 连接并执行类似的操作来试一试
proc glimmix data=oracle.table ... options ... ;
run;
看看会发生什么——也许它在数据库中处理的数量会让您甚至我感到惊讶。它可能会把它带到本地,也可能不会。
您可能需要考虑使用简化版本的问题(包括示例数据)提出问题,并简单地询问是否有人对提高性能有任何想法。可以进行很多调整,也许我们这里的一些人可以提供帮助。
【讨论】: