【发布时间】:2015-09-19 12:27:15
【问题描述】:
我有一个非常大的表,有 60M 行索引在 id 上,希望根据包含 id 和 newid 的查找表 id_conversion(1M 行)为每条记录填充字段 newid,索引在 id 上。 当我跑步时
update people p set p.newid=(select l.newid from id_conversion l where l.id=p.id)
它运行了一个小时左右,然后我收到一个存档错误或 00257。 对分段运行更新或更好的 sql 命令有什么建议吗?
【问题讨论】:
-
你可以尝试
exists查询,但我认为Oracle的优化器足够聪明,可以使用相同的计划。你有id_conversion (id, newid)的索引吗? -
我有 id 索引但没有 newid。不明白为什么在 newid 上建立索引有好处。但是你是第二个提出这个建议的人,所以我开始担心了!
标签: sql oracle sql-update