首先让我说我所在的团队对 SAS 来说都是新手。我们在 SAS 9.3 中使用 Enterprise Guide 5.1,并有一组垂直排列的计划数据(每人每天一或两行)。我们有一些PROC SQL
语句、aPROC TRANSPOSE
和其他几个步骤,它们一起主要使数据按周分组并水平显示。那组代码工作正常。流程第一次运行时,建立与数据库的连接需要一点额外的时间,但是一旦建立连接,剩下的过程只需要几秒钟(7个月的测试运行大约需要6秒钟)数据:58,000 行和 26 列的源数据进入 6,000 行和 53 列的输出)。
我们的问题在于输出。最终用户在 Excel 中查找结果,因此我们使用 SAS Excel 插件并打开存储过程。为了获得输出,我们需要一个PROC PRINT
,或类似的东西。但是使用PROC PRINT
上面的结果(6,000 行 x 53 列)需要 36 秒才能生成。然后,在 EG 中渲染需要另外 10 秒左右,而在 Excel 中则需要更多时间。
代码很基础,只是:
PROC PRINT DATA=WORK.Report_1
NOOBS
LABEL;
RUN;
我们也尝试过使用 basic PROC REPORT
,但我们只获得了 3 秒:生成加上渲染时间仍然需要 33 秒。
PROC REPORT DATA=WORK.Report_1
RUN;
QUIT;
任何想法为什么需要这么长时间?还有其他可能更快的打印选项吗?