2011-12-19 53 views
1

我们有一个批处理过程,它读取基表并执行一些聚合,然后使用修改的标志更新表。锁定表需要更多时间来执行更新语句oracle

我们有一条更新语句,它会更新大约300万行。作为业务需求的一部分,我们需要在正在更新的表上创建表级锁。

UPDATE TABLE1 t1 SET PARAMETER1=(SELECT p1 from TABLE2 t2 where t1.ROW_ID=ROWIDTOCHAR(t2.ROW_ID) 

观察今天我们做的是,用表级锁更新语句正在35分钟而没有表级锁服药20分钟。

我无法确定这一观察。请帮忙!

干杯, Dwarak

+3

您提供的陈述将被读取为一致,所以即使其他活动同时发生,表格也会正确更新。你能详细说明需要表级锁的业务需求吗? – Randy 2011-12-19 14:30:06

+1

你的意思是你无法证实这一观察?或者你无法理解它?你希望我们给你什么确切的帮助? – APC 2011-12-19 14:30:08

+0

我想了解这个观察,从而确认它。 – 2011-12-19 14:34:38

回答

1

任何人,但你的数据库,可以告诉你,你的观察的原因。你必须做一个AWR报告。

但是,它的不是很可能UPDATE将运行更长,因为表已被锁定之前。

1

您在测试中是否对缓存(数据库和文件系统中)进行缓存?根据你做什么时,由于数据已经在内存中,一个语句可能运行得更快。

相关问题