sas中工作磁盘空间不足的解决方案

sas中工作磁盘空间不足的解决方案,sas,Sas,我有50多张桌子在工作。以前,它工作得很好。 但最近出现了一些错误,如: 错误:文件上发生I/O错误 工作。'SASTMP-0000000 30'n.实用程序。错误:文件 工作。“SASTMP-0000000 30”n.公用设施损坏。I/O处理未完成 完成注意:在实用程序文件处理过程中遇到错误。 如果 为工作库分配更多空间。错误:没有足够的工作磁盘空间来存储内部排序的结果 阶段错误:发生错误 有人知道如何解决这个错误吗 您的磁盘已满。如果这是在服务器上运行的,请让系统管理员调查问题 如果这是您的

我有50多张桌子在工作。以前,它工作得很好。 但最近出现了一些错误,如:

错误:文件上发生I/O错误 工作。'SASTMP-0000000 30'n.实用程序。错误:文件 工作。“SASTMP-0000000 30”n.公用设施损坏。I/O处理未完成 完成注意:在实用程序文件处理过程中遇到错误。 如果 为工作库分配更多空间。错误:没有足够的工作磁盘空间来存储内部排序的结果 阶段错误:发生错误


有人知道如何解决这个错误吗

您的磁盘已满。如果这是在服务器上运行的,请让系统管理员调查问题

如果这是您的桌面,请查找并删除不需要的文件以释放空间

清除旧的SAS工作文件夹

通常,旧的SAS工作文件夹在SAS关闭时不会被清除。通过转到为SAS工作定义的路径并删除所有旧文件夹,可以收回大量磁盘空间

在SAS

%put %sysfunc(pathname(work));
将显示当前工作库的位置。上一级是创建所有SAS工作文件夹的位置

在我的系统上,返回:

C:\Users\dpazzula\AppData\Local\Temp\SAS Temporary Files\_TD9512_GXM2L12-PAZZULA_
这意味着我应该在C:\Users\dpazzula\AppData\Local\Temp\SAS Temporary Files\中查找要删除的旧文件夹。

您的工作空间已满。 您的SAS服务器使用一个专用目录,所有SAS会话在其中存储其临时文件:工作库中的所有文件,以及排序、加入等时使用的临时文件

解决方案:

分配更多的空间。 确保只将必要的文件放入工作/清理/关闭旧会话。 运行更少的进程。
将临时数据集替换为视图,尤其是在使用大型源数据集时:

data master /view=master ; set lib.monthlydata20: ; /* all datasets since Jan 2000 */ run ; proc sql ; create table want as select * from master where ID in(select ID from lookup) ; quit ; 研究你的代码

创建一个数据流图,以确定每个文件的创建时间和下游使用的位置。找出何时不再需要某个数据集并将其删除。如果你有50个数据集,那么很多数据集很有可能通过后续步骤“增值”,从而释放出你的工作空间。一个有趣的技巧是重用一些数据集名称,以控制不需要的数据集的数量


经验法则:保持您发现环境的方式-如果工作中没有要启动的文件,请自行手动清理。除非它是一个存储进程,它启动一个全新的SAS作业,并在作业完成后自行清理。

哪条SQL语句生成这一行?涉及的数据集有多大?这是一个很好的建议,尽管OP不太清楚这是否是问题所在,或者SQL语句是否可能变得过大……我基于代码之前运行正常的语句。以前,它工作得很好。但是,是的,它可能是一个糟糕的SQL语句,填充了HD。这是一个很好的观点。谢谢SAS在我使用SQL进行连接时崩溃。因此,您的意思是,如果联接项在每个表中都不是唯一的,则可能会发生这种情况。这会导致过大?没错。这就是为什么@Joe询问更多关于连接的详细信息。如果我想删除表以节省空间,您认为我可以使用Proc datasets library=work delete tablename吗?我尝试创建视图。但存在错误:无法处理SQL View work.tablename,因为至少有一个由它直接或间接引用的数据集或视图无法定位或无法成功打开。这是什么意思?
try to compress all datasets using this option
OPTIONS COMPRESS=YES REUSE=YES;
this should be in the very beginning of your code. it will compress all datasets by nearly 98%.It will also make your code run faster. It will consume more CPU but will decrease size.
In some cases, this might not help if the compressed data sets exceed the hard disk space.
Also, change your work directory to the biggest drive that has disk space.