楼主: chizichao
4360 11

求助一个利用SQL检索和赋值的程序问题 [推广有奖]

11
playmore 发表于 2014-1-6 11:19:03
yongyitian 发表于 2014-1-6 10:43
很好的想法, 但我用的是sas9.1,里面只有几个最基本的函数, 如h.add(), h.replace(), h.find(), 和iter ...
"没有用iterator时,find()函数也要查一遍lookup table。 估计用iterator后, 计算量会增加一倍以上。"
你这里提到的“用了iterator后,计算量增加”,我没搞懂

我觉得如果不用Hash,而是用Sql的匹配,相当于原表和lookup table来一遍笛卡尔积了,所以当表格很大的时候,会花很长时间,我做过几十M的dataset,可能都要花上一二十分钟,不知道用Hash会不会快些。我过去从来没试过,一会儿试试看
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

12
yongyitian 发表于 2014-1-6 11:59:11
playmore 发表于 2014-1-6 11:19
"没有用iterator时,find()函数也要查一遍lookup table。 估计用iterator后, 计算量会增加一倍以上。 ...
大侠好敏锐,iterator 是对 hash 表的每一行进行循环。 用 iterator 时可能不会再用find(), 所以计算量增加一倍以上的说法是不准确的。 当然同时使用 find() 和 iterator 肯定会增加计算量。

另外, hash 表的 key 相当于数据集里的 index, hash 表里的数据是排好序的。 所以用 hash 做 inner join 应该比用 proc sql 对没有 index 的数据做 inner join 要快。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 18:40