proc复制的性能与数据步骤的性能之间的差异

时间:2014-10-16 10:27:12

标签: 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;

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

1 个答案:

答案 0 :(得分:2)

选择proc副本。除了更快(不需要页面数据和通过PDV提供)之外,它还将保留您的索引(并且可以配置为保留完整性约束以及CONSTRAINT = YES选项)

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

总结:

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

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