1

考虑两种情况,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;

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

4

1 回答 1

2

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

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

总结一下:

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

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

于 2014-10-16T12:05:32.003 回答