PROC SQL Left Join 与 Alter Table 处理时间

PROC SQL Left Join vs Alter Table Processing Time

我正在尝试编写一些代码,将新的数据列合并到主数据集。

由于这是作为宏编写的,我希望在此过程中不要创建新的数据集。

我使用以下代码实现了这一点:

    PROC SQL;
        ALTER TABLE table1
         ADD ADD_TYP Character length=12 format=.;
    QUIT;

    PROC SQL;
        UPDATE table1 as A
            SET ADD_TYP = (SELECT B.ADD_TYP FROM Address_Index as B 
                            WHERE A.Key=B.Key);
    QUIT;

但是,处理时间太长了。这是正常的吗?左连接在 5 秒内完成。

我正在考虑只做 "CREATE TABLE table1" 即覆盖,但在 SAS 中有错误消息

5秒也不算离谱

但是对于更新查询,您需要 Address_Index(Key, ADD_TYP) 上的索引。这应该会给你最好的表现。

不过,我应该注意,最好使用 JOIN 来获取信息。您可以使用 JOIN 创建包含两个表的视图,因此仅在需要获取结果时才完成工作。