作者linda841004 (水凝结)
看板Statistics
标题[程式] 程式执行导致资源耗用问题
时间Thu Jul 14 19:17:44 2022
[软体程式类别]:SAS
[程式问题]:资料处理
[软体熟悉度]:熟悉
[问题叙述]:
我有一段程式码有时候跑不过,
有时候跑得过...
(看起来应该是程式码的问题导致执行资源耗光了,跑不动)
但里面仅有proc sql,没有其他用法。
本来怀疑是因为抓商品名称的括号没有括好,
导致抓到所有年的资料所以跑不动,
但检查了一遍,
应该是有括好。
请教各位大神,
这程式码有没有会导致SAS执行不易的情形呢?
求超市2019年1月至当年12月之夏季时令水果(须包含冰品及手摇饮)之顾客购买清单
http://i.imgur.com/CAC8ubj.jpg
--档案大小--
品项类型总档:小,几万笔抓出约百笔
商品总档:中,几十万笔抓出约千笔
贩售明细档:大,一年千万笔,抓出约几十万笔(档案内有很多年)
操作步骤:
1.从品项类型总档抓出商品代码为A的商品类型
2.再从商品总档抓出步骤1得出的商品类型,列出商品名称
3.最後利用贩售明细档抓出所需要商品名称在2019年的顾客沟买清单
[程式范例]:
%let ym=购买年月 between 201901 and 201912;
PROC SQL;
CREATE TABLE 顾客购买清单 AS
(
select distinct 顾客姓名,购买日期
from 贩售明细档
where &ym. and (isnull(商品名称,'') in
(select distinct 商品名称
from 商品总档
where 商品类型 in
(select distinct 商品类型
from 品项类型总档
where 代码='A')) or (isnull(商品名称,'')in ('冰品','手摇饮')))
group by 顾客姓名,购买日期
);
QUIT;
图片版:
http://i.imgur.com/H7eXTaF.jpg
再次感谢各位大大的协助:)
-----
Sent from JPTT on my Google Pixel 6.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.224.139.105 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Statistics/M.1657797466.A.CD4.html
1F:推 west1996: 如果确定是资源耗用问题,一定是死在顾客明细档,我会选 07/14 21:22
2F:→ west1996: 择两个sub query做完後的资料落地,然後顾客明细档查询 07/14 21:22
3F:→ west1996: 的部分用data step+hash object的方法处理掉 07/14 21:22
4F:→ linda841004: 目前我是拆成两个proc sql,的确可以执行, 07/15 08:52
5F:→ linda841004: 但因为我“自己觉得”文中的程式,没有找到错误 07/15 08:52
6F:→ linda841004: 所以真的很疑惑,为何这样无法跑??? 07/15 08:52
7F:推 west1996: 如果hang住,应该就是out of memory吧 07/15 21:34
8F:推 haolihy: 一直巢状where就很危险 写成left join会好一点 07/16 13:57
9F:→ linda841004: 感谢楼上两位大大的回复, 07/17 10:51
10F:→ linda841004: 未来会避免此种写法QQ 07/17 10:51
11F:→ linda841004: 既伤电脑又伤心(?) 07/17 10:51