2015-05-26 136 views
-1

SQL调优:我有一个脚本,它有3个create table语句:一个是从同一个表中创建了两个新列添加,另两个是临时表创建语句和2更新语句,上次运行查询需要13个小时才能完成。我已经有专栏的索引,使用并行和完整的提示。我的创建表有group by,从两个非常大的表格的两列过滤数据。我应该调整这个查询的第一步?我应该采取一个创建表代码,手动运行它,看看它要花多长时间,然后决定使用什么,即提示或什么?需要一种方法来开始我的步骤...需要SQL调整思路:查询到很长一段时间

+0

至少,你需要发布查询和解释计划,以提供足够的信息让知情的答案。 – Allan

+0

解释计划 CREATE TABLE AR1_CREDIT_DEBIT_LINK_DOX PARALLEL 4 NOLOGGING AS SELECT /* + PARALLEL(A,4)FULL(A)*/ A. *, TO_DATE(NULL)L3_CDL_CREATION_DATE, TO_DATE(NULL)L3_CDL_REVERSAL_DATE FROM AR1_CREDIT_DEBIT_LINK一个; SELECT * FROM表(DBMS_XPLAN.DISPLAY); –

+0

ID COST | 0 | CREATE TABLE语句| | 510M | 47G | 234K | | 5 | TABLE ACCESS FULL | AR1_CREDIT_DEBIT_LINK | 510M | 47G | 122K | 1 | 862 | Q1,00 | PCWP | –

回答

0

为什么没有永久创建表?您可以将它们作为脚本的第一步擦除它们?只需在本地模式中创建它们,而不是程序模式。我们这样做的报告需要一段时间才能运行,我们必须按季度运行。