我有情况需要为百万行数据执行补丁脚本。当前查询执行时间不满足少数行(18000)的预期,这需要大约4个小时(在部署之前测试数据为live)。 补丁脚本实际上在循环中选择了数百万行数据并根据规范进行更新,我只想知道数百万行数据可能需要多长时间,因为它只花了大约4小时就行了18000行。
为了克服这个问题,我决定创建临时表,保存整个select语句数据,然后使用临时表继续补丁过程,比较选择和更新过程可能会更快。
还有其他方法可以用来处理这种情况吗?任何建议和解决方法。
(由于公司政策无法在此发布PL / SQl脚本)
答案 0 :(得分:0)
似乎没有人可以在这里回答我的问题我发布了我的答案。 在oracle中有并行执行,它允许跨多个线程传播单个SQL语句的处理。
因此,通过使用此方法,我解决了长时间运行的查询(4小时)到6分钟..
了解更多信息: https://docs.oracle.com/cd/E11882_01/server.112/e25523/parallel002.htm http://www.oracle.com/technetwork/articles/database-performance/geist-parallel-execution-1-1872400.html