我正在寻找有关我遇到的 SAS/SQL 性能问题的一些指导。在 SAS Enterprise Guide 中,我创建了一个创建表的程序。该表有大约 90k 行:
CREATE TABLE test AS (
SELECT id, SUM(myField)
FROM table1
GROUP BY id
)
我有一个更大的表,有数百万行。每行都有一个id。我想对这个表的值求和,只使用“测试”表中的 id。我试过这个:
CREATE TABLE test2 AS(
SELECT big.id, SUM(big.myOtherField)
FROM big
INNER JOIN test
ON test.id = big.id
GROUP BY big.id
)
我遇到的问题是,对具有数百万条记录的大表运行第二个查询需要很长时间。我认为 id 子集的内部连接会有所帮助(也许确实如此),但我想确保我正在尽我所能加快速度。
我没有任何方法可以获取有关基础数据库索引的信息。我更感兴趣的是获得比我拥有更多 SQL 和 SAS 经验的人的意见。