[程式] 程式執行導致資源耗用問題

看板Statistics作者 (水凝結)時間1年前 (2022/07/14 19:17), 編輯推噓3(308)
留言11則, 3人參與, 1年前最新討論串1/1
[軟體程式類別]: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://www.ptt.cc/bbs/Statistics/M.1657797466.A.CD4.html

07/14 21:22, 1年前 , 1F
如果確定是資源耗用問題,一定是死在顧客明細檔,我會選
07/14 21:22, 1F

07/14 21:22, 1年前 , 2F
擇兩個sub query做完後的資料落地,然後顧客明細檔查詢
07/14 21:22, 2F

07/14 21:22, 1年前 , 3F
的部分用data step+hash object的方法處理掉
07/14 21:22, 3F

07/15 08:52, 1年前 , 4F
目前我是拆成兩個proc sql,的確可以執行,
07/15 08:52, 4F

07/15 08:52, 1年前 , 5F
但因為我“自己覺得”文中的程式,沒有找到錯誤
07/15 08:52, 5F

07/15 08:52, 1年前 , 6F
所以真的很疑惑,為何這樣無法跑???
07/15 08:52, 6F

07/15 21:34, 1年前 , 7F
如果hang住,應該就是out of memory吧
07/15 21:34, 7F

07/16 13:57, 1年前 , 8F
一直巢狀where就很危險 寫成left join會好一點
07/16 13:57, 8F

07/17 10:51, 1年前 , 9F
感謝樓上兩位大大的回復,
07/17 10:51, 9F

07/17 10:51, 1年前 , 10F
未來會避免此種寫法QQ
07/17 10:51, 10F

07/17 10:51, 1年前 , 11F
既傷電腦又傷心(?)
07/17 10:51, 11F
文章代碼(AID): #1Yp_jQpK (Statistics)