考虑两种情况: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;
在这两种情况下,是否有理由选择一种方式而不是另一种方式?
答案 0 :(得分:2)
选择proc副本。除了更快(不需要页面数据和通过PDV提供)之外,它还将保留您的索引(并且可以配置为保留完整性约束以及CONSTRAINT = YES选项)
如果set语句中的源实际上是VIEW,您可能希望使用数据步骤以保留该时间点的目标值。
总结:
Proc复制将复制数据集(想想复制/粘贴)。值无法修改。
数据步骤将重建数据集(一次一条记录)可以同时修改值。