作者Meidien (學海無涯回頭是岸)
看板Statistics
標題[程式] SAS運作效率與硬體配備
時間Mon Sep 18 23:12:00 2017
雖然是軟體相關,但不知道分類有沒有選對,
錯了的話還請版友不吝告知,我會立刻修正。
我的工作內容常用到SAS做大量財務資料分析,
今天跑了一個 proc sql 的 left join,出來的資料集約1.5億筆資料,
另外要跑的資料是放在 memory-based libraries裡的,
總共花費時間是:
real time 13:58.92
cpu time 14:44.85
其它硬體參考資訊:
CPU I7 6700 3.4 ghz
Ram 64g
SSD硬碟
還有運作時的效能監測:
https://goo.gl/DTTJq4
CPU只有部分跑很高,其它都沒在動。
我想請問版友,如果我想要再節省更多時間,我該朝什麼方向去想?
目前想的方向有兩個,一個是程式問題,
是該把資料拆小,分開處理完再垂直合併?
另一個是硬體問題,
CPU? I/O?
不好意思因為什麼概念,還請版友賜教,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.143.197.85
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Statistics/M.1505747523.A.F26.html
1F:→ luenchang: 這麼大的數據應該在server上分析吧。Command line too 09/19 10:09
2F:→ luenchang: ls 比 套裝軟件快200倍以上。 09/19 10:09
3F:→ luenchang: 我是用merge statement在做left join. 你可以進commun 09/19 10:27
4F:→ luenchang: ities.as a.com找 merge vs SQL left join 09/19 10:27
5F:→ luenchang: SQL會做出Cartesian product. 再根據on, where裡的條 09/19 10:30
6F:→ luenchang: 件篩出資料。研究一下為何Cartesian product耗時間。 09/19 10:30
7F:推 lsshno1: hash merge 09/19 12:13
8F:→ Meidien: 謝謝兩位,我來研究看看。 09/19 20:05
9F:→ gogobox928: 我會把ram改成ram disk放work 一來也可以減少ssd寫入 09/24 15:06
10F:→ statexpert: 這消耗cpu的task可以考慮parallel processing 10/01 03:31