1、Oracle中如何读取未提交的数据,如果不能,怎么判断一个表数据量是不是在变化?
如在db2 中可以使用with ur 读取未提交的数据,这样我采用select count(*) from t with ur 就能判断对一个表的数据量的变化了。2、3个表关联,第一种方法,和第二种方法的优缺点是什么的呢
SELECT count(1) FROM (select nvl(c.tcpg_bil_type_id, 'TCPG_0000') , a.prd_inst_id,SUM( a.charge)
from eda.tb_b_ft_bs_bil_item_201105 partition(latn_551) a INNER JOIN
eda.tb_b_mid_acs_prd_inst_mon_551 b
ON a.prd_inst_id = b.prd_inst_id
left join eda.tb_b_dim_acct_item_acs c
on a.acct_item_type_id = c.acct_item_type_id AND c.USE_TYPE_ID = 2
group by a.prd_inst_id,nvl(c.tcpg_bil_type_id, 'TCPG_0000'));
--对比
SELECT COUNT(1) FROM (
select
a.prd_inst_id,
551 latn_id,
nvl(b.tcpg_bil_type_id, 'TCPG_0000') tcpg_bil_type_id,
sum(charge) charge
from (select a.acct_item_type_id, a.prd_inst_id, a.charge
from eda.tb_b_ft_bs_bil_item_201105 partition(latn_551) a,
eda.tb_b_mid_acs_prd_inst_mon_551 b
where a.prd_inst_id = b.prd_inst_id) a
left join eda.tb_b_dim_acct_item_acs b
on a.acct_item_type_id = b.acct_item_type_id AND B.USE_TYPE_ID = 2
group by a.prd_inst_id,nvl(b.tcpg_bil_type_id, 'TCPG_0000'))
3、最近有一个表需要换一种方法加工,怎么比较2个表的数据量
目前是采用intersect和minus的方法,但是上诉方法只能找出数据,如果比较出2个表加工后(含主键),是哪些字段不一样了?
如在db2 中可以使用with ur 读取未提交的数据,这样我采用select count(*) from t with ur 就能判断对一个表的数据量的变化了。2、3个表关联,第一种方法,和第二种方法的优缺点是什么的呢
SELECT count(1) FROM (select nvl(c.tcpg_bil_type_id, 'TCPG_0000') , a.prd_inst_id,SUM( a.charge)
from eda.tb_b_ft_bs_bil_item_201105 partition(latn_551) a INNER JOIN
eda.tb_b_mid_acs_prd_inst_mon_551 b
ON a.prd_inst_id = b.prd_inst_id
left join eda.tb_b_dim_acct_item_acs c
on a.acct_item_type_id = c.acct_item_type_id AND c.USE_TYPE_ID = 2
group by a.prd_inst_id,nvl(c.tcpg_bil_type_id, 'TCPG_0000'));
--对比
SELECT COUNT(1) FROM (
select
a.prd_inst_id,
551 latn_id,
nvl(b.tcpg_bil_type_id, 'TCPG_0000') tcpg_bil_type_id,
sum(charge) charge
from (select a.acct_item_type_id, a.prd_inst_id, a.charge
from eda.tb_b_ft_bs_bil_item_201105 partition(latn_551) a,
eda.tb_b_mid_acs_prd_inst_mon_551 b
where a.prd_inst_id = b.prd_inst_id) a
left join eda.tb_b_dim_acct_item_acs b
on a.acct_item_type_id = b.acct_item_type_id AND B.USE_TYPE_ID = 2
group by a.prd_inst_id,nvl(b.tcpg_bil_type_id, 'TCPG_0000'))
3、最近有一个表需要换一种方法加工,怎么比较2个表的数据量
目前是采用intersect和minus的方法,但是上诉方法只能找出数据,如果比较出2个表加工后(含主键),是哪些字段不一样了?
2、没有什么区别。
3、如果主键都不一样的,那你要比较两条件记录,凭什么比较那个列不一样?
如果不键不变,那么根据主键两表连接比较相应的列值就行了。