为了利用 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;
看看会发生什么——也许它在数据库中处理的数量会让你甚至我感到惊讶。它可能会把它带到本地,它可能不会。
您可能需要考虑用简化版本的您正在做的事情(包括示例数据)提出问题,并简单地询问是否有人对提高性能有任何想法。可以进行很多调整,也许我们这里的一些人可以提供帮助。