作者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/cn.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