【问题标题】:Sql tuning using execution plan使用执行计划进行 Sql 调优
【发布时间】:2020-04-05 17:26:15
【问题描述】:

我有一个场景,其中 sql 查询(在封装在 proc 中的 oracle 11G 环境中)比平时花费更长的时间,因为没有内存/网络/查询问题,否则不会有任何额外的记录量。

在这种情况下,我想检查执行计划是否改变了?你能帮助我如何检查执行计划(检查的理想工具)以及如何恢复到该查询的旧执行计划吗?

【问题讨论】:

    标签: sql-tuning


    【解决方案1】:

    我假设您正在谈论在过程中使用的普通 sql 代码。 有三个选项可以检查执行计划, 一种。设置自动跟踪 traceonly 解释; 湾。使用 tkprof C。 sql/developer 工具,你会在菜单上看到一个图标,旁边有一个图标说明计划。

    如果您详细了解 a 或 b,请告诉我,我们会给您一些样品。

    要使用旧计划,您应该早点保存它,您保存了吗?,您可以尝试使用plan_table 搜索相同的计划。

    【讨论】:

      【解决方案2】:

      在 Oracle DB 中,您可以使用以下查询来检查 SQL 执行计划,您可以检查您的 SQL 是否正在执行索引或全表扫描。

      EXPLAIN PLAN FOR SELECT * from TABLE_NAME where some_coloumn='PUT FILTER HERE';
      SELECT PLAN_TABLE_OUTPUT FROM TABLE(DBMS_XPLAN.DISPLAY());
      

      【讨论】:

        猜你喜欢
        • 2019-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多