Performance 哪些因素对SAS数据集性能的影响更大-观察次数或变量数量?
在SAS中使用不同的数据集一两个月后,在我看来,一个数据集的变量越多,在该数据集上运行PROC和其他操作所需的时间就越长。然而,如果我有5个变量,但有100万个观察值,那么性能不会受到太多影响 虽然我对观察结果或变量是否会影响性能感兴趣,但我也想知道在查看SAS性能时是否还缺少其他因素Performance 哪些因素对SAS数据集性能的影响更大-观察次数或变量数量?,performance,dataset,sas,Performance,Dataset,Sas,在SAS中使用不同的数据集一两个月后,在我看来,一个数据集的变量越多,在该数据集上运行PROC和其他操作所需的时间就越长。然而,如果我有5个变量,但有100万个观察值,那么性能不会受到太多影响 虽然我对观察结果或变量是否会影响性能感兴趣,但我也想知道在查看SAS性能时是否还缺少其他因素 谢谢 对于相同大小的数据集(行*列),我认为变量较多的数据集通常会比较慢。我尝试创建两个数据集,一行10000列,一列10000行。变量越多,占用的内存和时间就越多 options fullstimer; dat
谢谢 对于相同大小的数据集(行*列),我认为变量较多的数据集通常会比较慢。我尝试创建两个数据集,一行10000列,一列10000行。变量越多,占用的内存和时间就越多
options fullstimer;
data a;
retain var1-var10000 1;
run;
data b(drop=i);
do i=1 to 10000;
var1=i;
output;
end;
run;
在日志上
31 options fullstimer;
32 data a;
33 retain var1-var10000 1;
34 run;
NOTE: The data set WORK.A has 1 observations and 10000 variables.
NOTE: DATA statement used (Total process time):
real time 0.23 seconds
user cpu time 0.20 seconds
system cpu time 0.03 seconds
Memory 5382k
OS Memory 14208k
Timestamp 10/14/2009 2:03:57 PM
35 data b(drop=i);
36 do i=1 to 10000;
37 var1=i;
38 output;
39 end;
40 run;
NOTE: The data set WORK.B has 10000 observations and 1 variables.
NOTE: DATA statement used (Total process time):
real time 0.01 seconds
user cpu time 0.00 seconds
system cpu time 0.01 seconds
Memory 173k
OS Memory 12144k
Timestamp 10/14/2009 2:03:57 PM
你也应该退房,然后离开。如果你必须多次访问一个数据集,你也可以考虑将整个数据集存储在内存中。 < P>我不能很清楚地解释(而且我正在做一个有根据的猜测),但我想它与一些因素有关,包括一个完整的记录被读取到PDV中,这意味着内存中有更多的数据和许多变量
使用压缩数据集进行一些测量可能是值得的,因为I/O通常是瓶颈
SAS数据集选项:
data foo(compress=yes);
...
run;
SASFILE听起来很有用,但是我的数据集对于我所在的机器来说太大了(~1.8gb,并且当我尝试对其进行SASFILE时,会出现持续的内存不足错误)。谢谢你做这些快速测试!谢谢,我想我今天要试试压缩。我正在运行的机器上的HD在运行我当前使用的数百条PROC REPORT语句时会不断出现问题,因此我认为这肯定是I/O和compress可能会有所帮助!压缩对我的大数据集有很大帮助。谢谢除了单个数据集之外,还可以将压缩设置为全局选项或不同粒度级别的库选项。