sas - proc copy 和 data step 的性能差异

标签 sas proc datastep

考虑sales包含超过10M记录的两种场景,一条记录50字节:

场景一:

data STORE.sale;
set work.sale;
run;

proc copy in = work out = STORE;
select sale;
run;

场景二:

data STORE.sale;
set FACTORY.sale;
run;

proc copy in = FACTORY out = STORE;
select sale;
run;

在这两种情况下,是否有理由选择一种方式而不是另一种方式?

最佳答案

选择过程副本。除了速度更快(无需分页数据并通过 PDV 馈送)之外,它还将保留您的索引(并且可以配置为使用 CONSTRAINT=YES 选项保留完整性约束)

如果 set 语句中的源实际上是 VIEW,您可能希望使用数据步骤来保留该时间点的目标值。

总结一下:

Proc copy 将复制数据集(认为复制/粘贴)。值无法修改。

数据步骤将重建数据集(一次一条记录)值可以同时修改。

关于sas - proc copy 和 data step 的性能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26402054/

相关文章:

macos - MAC 的 SAS 替代方案

sql - 带有 --comments 的 SAS 显式传递转换为单行

linux - 为什么proc进程比其他进程快?

linux - 在 3.11 或更高版本的现有子目录下创建 Proc fs 目录和条目?

SAS 将结果输出到输入数据集(输入和输出数据集名称相同)

r - 将回归结果输出到 R 中的数据框中

mysql - 对具有相同模式名称的多个数据库使用 mysql 函数

sas - 如何按一定顺序读取两个数据集?

variables - 通过数据步骤的 SAS 变量串联

sas - 在 SAS 中组合和合并行