在SAS中排序执行失败

时间:2014-09-24 20:28:58

标签: sql sorting error-handling sas

我在SAS中运行PROC SQL函数时遇到错误消息。

以下是我的命令:

proc sql;
     create table abc1
     as select a.endfyr,a.begfyr,a.datadate, b.*
     from data.table1 as a
     right join
     data.CRSP_19792013 as b
     on a.lpermno=b.permno and a.begfyr<=b.date<=a.endfyr;
quit;

以下是日志文件的结果: GOPTIONS ACCESSIBLE;

proc sql;
     create table abc1
     as select a.endfyr,a.begfyr,a.datadate, b.*
     from data.table1 as a
     right join
     data.CRSP_19792013 as b
     on a.lpermno=b.permno and a.begfyr<=b.date<=a.endfyr;
quit;

- 注意:使用了SAS线程排序。

- 错误:排序执行失败。

  • 注意:PROC SQL设置选项NOEXEC并将继续检查语句的语法。     退出;
  • 注意:由于错误,SAS系统停止处理此步骤。
  • 注意:使用过程SQL(总处理时间):

  • 实时35.54秒

  • 用户cpu时间16.03秒
  • 系统cpu时间15.08秒
  • 记忆271858.12k
  • OS Memory 277812.00k
  • 时间戳09/25/2014 04:02:32 AM

在线搜索解决方案后,我发现错误Sort execution failure可能是由于内存不足造成的。我确实增加了memsize和sortsize。但他们没有帮助。但是,上面提到的内存和操作系统内存(日志文件结果)是什么意思? data.CRSP_19792013确实是一个大文件。

如果您需要更多信息来帮助我,请告诉我。

1 个答案:

答案 0 :(得分:0)

如果您正在使用z / OS,请使用 “ prco sql nothreads;”

如果使用SAS线程排序,则不使用主机排序。但是主机排序要好得多。