【发布时间】:2019-08-01 10:48:32
【问题描述】:
这是我的查询,执行它需要更多时间,任何人都可以让它更快!!! 我认为不存在会导致更耗时,但我不知道如何将其转换为具有更多条件的左外连接我已经更改了很多次,但结果也随之更改。
提前致谢。
【问题讨论】:
-
这是一个很长的查询,您没有提供有关数据或数据结构的详细信息,也没有提供您正在实现的业务逻辑。而且看起来你有一个嵌入式函数调用
PCK_TAX_PERIOD.TXPRD_DATE_FN():这是做什么的?你不能指望我们重写一个查询,而不知道它应该做什么。请阅读this post on Oracle tuning,然后编辑您的问题以提供我们需要的更多信息。 -
@APC 我已经更新了我只需要转换不存在加入以提高查询执行速度的查询!!!
-
您在问题中说您无法在不影响结果集的情况下进行更改。这是您的数据模型和业务规则。所以我认为我们不太可能在完全无知的情况下做到这一点。如果您发布一些带有所需输出的示例输入数据,那么有人可能会为您进行所需的手术。
-
您的连接条件
( tabi.tax_account_No=ta.tax_account_no and tt.tax_Type_No!=2) OR( tt.tax_Type_No=2)看起来很奇怪 - 您真的希望所有 tt.tax_type_no = 2 行都连接到每一行,而不管 tax_account_no 是什么? -
“我认为不存在的原因” 无需猜测。阅读
alter session set statistics_level=all;和DBMS_XPLAN.DISPLAY_CURSOR。它会准确地告诉您执行计划中的哪些步骤需要最多的工作。
标签: oracle query-optimization not-exists