关于dw的buffer问题
一般而言,dw是根据original缓冲区内生成where条件.从以往的资料上来看,有个假定的前提,就是primary区的主键值不修改,而只是修改其他的值,这样,根据original区,会生成update table set .... where 主键=旧值;
现提问题如下: primary区有两条记录 a b
c d (两个字段,其中第一字段,a,c为主键值)
如果在primary区,把数据修改成: e b
f d (就是说可能修改了primary的主健值)
那么按常理逻辑是,根据original区生成语句如下:
update table set 主键=e where 主键=a;
update table set 主键=f where 主键=c;
在下的问题是: 为什么不会生成 update table set 主键=f where 主键=a;
update table set 主键=e where 主键=c;
换句话说,original区的数据是如何与primary区的数据一一对应生成where条件的,因为已经修改了primary区的多条数据的主键值。是不是dw中还
隐藏着其他的技术细节,比如时间戳,或是dw各个缓冲区中的记录有着内部的某种编号?
请各位大侠解释。
(呵呵,这好象是有些深度的问题,百度上都是假定一个条件,主键值不变的情况下。)