表结构更新后,更新表花费的时间更长

时间:2019-12-13 10:12:51

标签: oracle performance sql-update bulkupdate

我有一个要求,我必须将列(col_1)的数据类型从数字(38,0)更新为Varchar2(64)。该列也是组合主键的一部分。

我正在通过以下方式实现这一目标

1)添加数据类型为varchar2(64)的新列col_2

2)使用现有列col_1填充col_2的数据[UPDATE TABLE_1 SET col_2 = col_1]

3)删除主键(这将删除在pkey上创建的索引)

4)删除列col_1

5)将新列重命名为col_1 [ALTER TABLE TABLE_1 COLUMN col_2改为col_1]

6)创建主键(这会在pkey上创建索引)

7)收集表中的统计数据

成功完成上述步骤后,我正在运行常规的Informatica作业,该作业在表上执行更新/插入。这项工作需要更长的时间,而且还没有完成。插入/更新是informatica工作流程的一部分,我可以看到没有。会话属性下的目标统计信息中的行数正在增加,但每小时大约更新500行。

步骤中是否缺少某些内容。我是否需要显式重建索引或收集索引。我已经检查了索引和表的LAST_ANALYZED日期,并且两者均已更新。 查询计划也和以前一样。

Oracle版本- Oracle Database 12c企业版12.1.0.2.0版-64位生产

请帮助您提出建议。

非常感谢

基尔蒂

0 个答案:

没有答案