在 SAS 中处理不同数据集一两个月后,在我看来,数据集包含的变量越多,在数据集上运行 PROC 和其他操作所需的时间就越多。然而,如果我有 5 个变量,但有 100 万个观察值,性能不会受到太大影响。
虽然我对观察或变量是否会影响性能很感兴趣,但我也想知道在查看 SAS 性能时是否遗漏了其他因素?
谢谢!
最佳答案
对于相同大小的数据集(行*列),我相信具有更多变量的数据集通常会更慢。我尝试创建两个包含 1 行和 10000 列,或 1 列和 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
您还应该查看 BUFNO=和 BUFSIZE= .如果您必须多次访问数据集,您可以考虑使用 SASFILE以及将整个数据集存储在内存中。
关于performance - 什么对 SAS 数据集性能的影响更大 - 观察数量或变量数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1566133/