楼主: sun5008
932 3

[有偿编程] SAS 用PROC SORT排序一个很长的数据500万行,显示磁盘不够,怎么办 [推广有奖]

  • 0关注
  • 0粉丝

已卖:993份资源

博士生

45%

还不是VIP/贵宾

-

威望
0
论坛币
96 个
通用积分
2.1000
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
6239 点
帖子
140
精华
0
在线时间
270 小时
注册时间
2006-3-9
最后登录
2025-11-25

楼主
sun5008 发表于 2023-10-16 13:55:52 |AI写论文
50论坛币

我用最简单的SORT
proc sort data= work_lib.factor_data force;
        by trade_date stock_code;
run;

这个数据有500万行,以前只有300万行的时候是跑的通的,现在显示磁盘不够,
但是我看了我服务器的硬盘空间是足够的,请问怎么破? 是不是要调整哪里的缓存大小设置

报错显示:
ERROR: No disk space is available for the write operation.  Filename =
       C:\Users\suncj\AppData\Roaming\SAS\EnterpriseGuide\EGTEMP\SEG-78360-59d147f4\contents\SAS Temporary
       Files\SAS_util000100012C7C_s2wp-iq-srv01\ut2C7C00002D.utl.
ERROR: Failure while attempting to write page 2537 of sorted run 14.
ERROR: Failure while attempting to write page 55304 to utility file 1.
ERROR: Failure encountered while creating initial set of sorted runs.
ERROR: Failure encountered during external sort.
ERROR: Sort execution failure.

关键词:500万 SOR ROC 怎么办 ENCOUNTERED

沙发
sun_man 在职认证  发表于 2023-10-17 14:10:34
这个报错表示在运行SORT过程时遇到了磁盘空间不足的错误。尽管您的服务器硬盘空间足够,但SORT过程使用的临时文件可能超出了默认的临时文件大小限制。尝试以下几种方法解决这个问题:
增加临时文件的大小限制:您可以通过在SORT过程之前设置SAS系统选项来增加临时文件的大小限制。例如,可以使用以下代码将临时文件大小限制增加到1GB:
options SORTSIZE=1G;
指定临时文件的位置:您可以尝试将临时文件的位置指定到一个具有足够空间的目录。例如,可以使用以下代码将临时文件的位置指定到D盘的根目录:
options TEMPPATH='D:\';
增加服务器硬盘空间:尽管服务器的硬盘空间是够的,但是如果SORT过程需要更多的空间来处理更大的数据集,你可能需要考虑增加服务器硬盘的可用空间。
优化SORT过程:如果数据集非常大,SORT过程可能需要更多的时间和资源来完成排序。可以考虑使用其他方法或技术来优化排序过程,例如使用索引或分区等。

藤椅
leocooler 发表于 2023-10-30 09:30:50
以前遇到过这个问题,用tagsort 就可以解决了

板凳
carfieldflying 发表于 2024-3-25 14:38:11
给你几个方案,要么就是做hash或format,要么就是check你这个数据的所有字段,把冗余字段删除或限长。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-29 23:42