SAS Viya 2024.12中PROC SQL SELECT DISTINCT空错误问题排查
SAS Viya 2024.12中PROC SQL SELECT DISTINCT执行失败问题
问题概述
在SAS Viya Stable 2024.12环境中,执行PROC SQL的SELECT DISTINCT语句时会触发空错误,同时导致SAS Studio会话上下文中断。该操作在SAS Viya Stable 2024.08环境中可正常完成。
数据详情
- 数据源:从PostgreSQL数据库导入WORK库的表,共118万行数据
- 原表字段类型:Col1、Col3为
varchar(64),Col2为varchar(256) - 导入后特征:生成的
.sas7bdat文件约283MB,且所有varchar列长度变为原长度的4倍(例如256→1024)
测试场景与结果
正常执行的代码(耗时约3秒)
PROC SQL _method; CREATE TABLE WORK.OUTPUT AS SELECT t1.col1, t1.col2, t1.col3 FROM WORK.INPUT AS t1; QUIT;
日志显示执行方法为sqxcrta+sqxsrc,数据压缩后大小减少95.76%。
执行失败的场景
添加SELECT DISTINCT后触发错误,日志仅输出以下内容:
NOTE: SQL execution methods chosen are: sqxcrta sqxunqs sqxsrc( WORK.INPUT(alias = T1) )
- 单独对
t1.Col2或其他varchar(64)列组合执行SELECT DISTINCT均失败 - 字段长度相关测试结果:
SELECT DISTINCT t1.col2失败SELECT DISTINCT PUT(t1.col2, $256.)成功SELECT DISTINCT PUT(t1.col2, $1024.)失败
已尝试的无效操作
调整内存参数(MEMSIZE、MAXMEMQUERY)后,问题仍未解决。
限制条件
无法使用数据步替代,因为问题出现在SAS Studio自动生成的代码中,且数据量将持续增长,需排查环境配置层面的原因并解决。
内容的提问来源于stack exchange,提问作者DOver
相关产品推荐
相关产品推荐

