performance - 什么对 SAS 数据集性能的影响更大 - 观察数量或变量数量?

标签 performance dataset sas

在 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/

相关文章:

java - hibernate 确实很慢。如何让它更快?

wpf - 显示(颜色)日志最合适的 WPF 控件是什么?

c# - 使用 LINQ 在两个表之间选择不同的值

sas - 在 SAS 中有条件地计算跨多个变量的响应

sas - 如何读取SAS中的单个日期列?

random - SAS 随机采样

python - 按索引删除列表元素是否比按值删除更有效?

java - 在磁盘上写入文件的进程每秒的请求数较低

algorithm - 最大二分匹配算法测试的样本数据集?

python - 为什么我不能使用 Gensim 下载 API 下载数据集