Optimization 如何通过在SAS运行时不断减速的语句来加速SAS?

Optimization 如何通过在SAS运行时不断减速的语句来加速SAS?,optimization,sas,mixed-models,Optimization,Sas,Mixed Models,我通过BY语句在SAS中运行许多小型混合模型,这总共需要几个小时。我还收集ODS输出以导出到.csv文件。从Log窗口中的输出中,我注意到程序在开始时运行得非常快,但在运行时不断减慢。有没有办法加快速度?我曾考虑在我的数据子集上运行它,但希望有一个更优雅的解决方案,在最后仍然可以导出一个.csv文件。这可能吗?谢谢大家! 我的代码: ods listing; ods output Tests3=Tests3; proc MIXED data=my_data;

我通过
BY
语句在SAS中运行许多小型混合模型,这总共需要几个小时。我还收集ODS输出以导出到
.csv
文件。从
Log
窗口中的输出中,我注意到程序在开始时运行得非常快,但在运行时不断减慢。有没有办法加快速度?我曾考虑在我的数据子集上运行它,但希望有一个更优雅的解决方案,在最后仍然可以导出一个
.csv
文件。这可能吗?谢谢大家!

我的代码:

ods listing;
ods output  Tests3=Tests3;

proc    MIXED   data=my_data;               
class   by_group    Factor1 Factor2 Factor3;    
model   response    = Factor1|Factor2   /   ddfm=satterth   s;
random  Factor3;
BY  by_group;   
run;    

proc    export  data=Tests3 outfile='.\Tests3.csv'  dbms=csv replace; run;

通过添加一个

ODS RESULTS OFF;
开始时的陈述,如下所示:

ODS RESULTS OFF;
ods listing;
ods output  Tests3=Tests3;

proc    MIXED   data=my_data;               
class   by_group    Factor1 Factor2 Factor3;    
model   response    = Factor1|Factor2   /   ddfm=satterth   s;
random  Factor3;
BY  by_group;   
run;    

proc    export  data=Tests3 outfile='.\Tests3.csv'  dbms=csv replace; run;
这将运行时间从超过4小时减少到不到30分钟,并且在运行过程中没有明显的减速。显然,SAS 9.3及更高版本会自动生成HTML格式的输出,并将其保存到硬盘驱动器中,除非明确告知不要这样做,并且该文件可能非常大,因为它包含大量格式信息。添加到这个不断增长的大文件中是导致持续减速的原因

应该注意的是,该解决方案确实阻止了“结果查看器”窗口的显示,但这非常适合我目前的目的。另见


您不需要跟踪。如果您正在生成TESTS3数据集,您还需要打印输出吗?谢谢!我删除了ods跟踪语句。打印输出是指.csv文件吗?在我的下一个管道中我需要它,但是如果你是这个意思的话,我不需要在“结果查看器”窗口中看到任何东西。不,进程的实际打印结果是混合的。您打开了列表输出。如果你打开了任何其他ODS目的地,比如HTML或PDF,它也试图在那里打印。哦,打印输出是指“输出”窗口吗?我也不需要。我没有将ODS输出显式发送到其他目标的代码。您有多少个BY组?如果使用ODS RESULTS off语句关闭所有ODS输出,则不需要关闭HTML目标。这在使用SAS/Studio或Enterprise Guide时非常重要,因为程序很难重新创建那些工具创建的ODS目的地。谢谢@Tom!我删除了
ODS HTML语句。