【问题标题】:How do I view the mysql stored procedure execution plan?如何查看mysql存储过程执行计划?
【发布时间】:2016-05-26 10:40:46
【问题描述】:

使用JDBC Java执行存储过程,但是速度慢,所以想查数据库存储过程执行计划,你怎么看?SQL存储过程有几百行,数据库是Mysql,我知道查select语句执行计划是使用explain,但是存储过程怎么可能呢?

【问题讨论】:

    标签: mysql sql procedure


    【解决方案1】:

    如果您至少有 mysql v5.6.3,则可以使用 mysql optimizer tracer

    基本用法:

    SET optimizer_trace="enabled=on";
    SELECT ...; # your query here
    SELECT * FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
    # possibly more queries...
    # When done with tracing, disable it:
    SET optimizer_trace="enabled=off";
    

    可以追踪following queries:

    选择; INSERT 或 REPLACE(使用 VALUES 或 SELECT); UPDATE/DELETE 及其多表变体;所有以前的以 EXPLAIN 为前缀的; SET(除非它操纵 optimizer_trace 系统变量);做; DECLARE/CASE/IF/RETURN(存储例程语言元素);称呼。如果这些语句之一在单独的步骤中准备和执行,则准备和执行将单独跟踪。

    【讨论】:

      【解决方案2】:

      尝试对存储过程中的 select 等语句单独使用说明。

      【讨论】:

        猜你喜欢
        • 2012-06-28
        • 1970-01-01
        • 2015-09-01
        • 2010-10-22
        • 1970-01-01
        • 1970-01-01
        • 2020-10-16
        • 1970-01-01
        • 2010-10-05
        相关资源
        最近更新 更多