看板 Statistics 關於我們 聯絡資訊
雖然是軟體相關,但不知道分類有沒有選對, 錯了的話還請版友不吝告知,我會立刻修正。 我的工作內容常用到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://www.ptt.cc/bbs/Statistics/M.1505747523.A.F26.html
luenchang: 這麼大的數據應該在server上分析吧。Command line too 09/19 10:09
luenchang: ls 比 套裝軟件快200倍以上。 09/19 10:09
luenchang: 我是用merge statement在做left join. 你可以進commun 09/19 10:27
luenchang: ities.as a.com找 merge vs SQL left join 09/19 10:27
luenchang: SQL會做出Cartesian product. 再根據on, where裡的條 09/19 10:30
luenchang: 件篩出資料。研究一下為何Cartesian product耗時間。 09/19 10:30
lsshno1: hash merge 09/19 12:13
Meidien: 謝謝兩位,我來研究看看。 09/19 20:05
gogobox928: 我會把ram改成ram disk放work 一來也可以減少ssd寫入 09/24 15:06
statexpert: 這消耗cpu的task可以考慮parallel processing 10/01 03:31