【发布时间】:2011-11-26 18:45:28
【问题描述】:
MERGE INTO Analysis a
USING ( SELECT * FROM Data ) b
ON ( a.User_Id = b.User_Id AND a.Upgrade_Flag = 0 )
WHEN MATCHED THEN
UPDATE SET Status = NVL(a.Status, 'ACTIVATE');
上述查询工作正常。但是当存在数百万条记录时,这可能会导致性能问题。上述查询是否有任何替代方法以获得更好的性能。请就此提出建议。感谢您的宝贵时间
【问题讨论】:
-
您能告诉我们该语句的执行计划吗?
-
性能调优是一个证据收集问题。因此,您需要提供更多信息。两个表的数据量,数据的分布,哪些列被索引。还要解释查询计划和统计信息。还有指示性时间,包括您认为应该是合理的时间。最后,上下文:这是一份常规工作还是一次性工作?
标签: oracle oracle10g query-optimization oracle11g