def METHOD_NAME(self):
    result = {
        "EXECUTE_TIME": 0,
        "BEFORE_STATUS": {"column_list": [], "rows": []},
        "AFTER_STATUS": {"column_list": [], "rows": []},
        "SESSION_STATUS(DIFFERENT)": {
            "column_list": ["status_name", "before", "after", "diff"],
            "rows": [],
        },
        "PROFILING_DETAIL": {"column_list": [], "rows": []},
        "PROFILING_SUMMARY": {"column_list": [], "rows": []},
    }
    sql_profiling = """select concat(upper(left(variable_name,1)),
                        substring(lower(variable_name),
                        2,
                        (length(variable_name)-1))) var_name,
                        variable_value var_value 
                    from performance_schema.session_status order by 1"""
    # 获取mysql版本信息
    server_version = self.engine.server_version
    if server_version < (5, 7, 0):
        sql = sql_profiling.replace("performance_schema", "information_schema")
    else:
        sql = sql_profiling
    self.engine.query(sql="set profiling=1", close_conn=False).to_sep_dict()
    records = self.engine.query(
        sql="select ifnull(max(query_id),0) from INFORMATION_SCHEMA.PROFILING",
        close_conn=False,
    ).to_sep_dict()
    query_id = records["rows"][0][0] + 3  # skip next sql
    # 获取执行前信息
    result["BEFORE_STATUS"] = self.engine.query(
        sql=sql, close_conn=False
    ).to_sep_dict()
    # 执行查询语句,统计执行时间
    t_start = time.time()
    self.engine.query(sql=self.sqltext, close_conn=False).to_sep_dict()
    t_end = time.time()
    cost_time = "%5s" % "{:.4f}".format(t_end - t_start)
    result["EXECUTE_TIME"] = cost_time
    # 获取执行后信息
    result["AFTER_STATUS"] = self.engine.query(
        sql=sql, close_conn=False
    ).to_sep_dict()
    # 获取PROFILING_DETAIL信息
    result["PROFILING_DETAIL"] = self.engine.query(
        sql="select STATE,DURATION,CPU_USER,CPU_SYSTEM,BLOCK_OPS_IN,BLOCK_OPS_OUT ,MESSAGES_SENT ,MESSAGES_RECEIVED ,PAGE_FAULTS_MAJOR ,PAGE_FAULTS_MINOR ,SWAPS from INFORMATION_SCHEMA.PROFILING where query_id="
        + str(query_id)
        + " order by seq",
        close_conn=False,
    ).to_sep_dict()
    result["PROFILING_SUMMARY"] = self.engine.query(
        sql="SELECT STATE,SUM(DURATION) AS Total_R,ROUND(100*SUM(DURATION)/(SELECT SUM(DURATION) FROM INFORMATION_SCHEMA.PROFILING WHERE QUERY_ID="
        + str(query_id)
        + "),2) AS Pct_R,COUNT(*) AS Calls,SUM(DURATION)/COUNT(*) AS R_Call FROM INFORMATION_SCHEMA.PROFILING WHERE QUERY_ID="
        + str(query_id)
        + " GROUP BY STATE ORDER BY Total_R DESC",
        close_conn=False,
    ).to_sep_dict()
    # 处理执行前后对比信息
    before_status_rows = [list(item) for item in result["BEFORE_STATUS"]["rows"]]
    after_status_rows = [list(item) for item in result["AFTER_STATUS"]["rows"]]
    for index, item in enumerate(before_status_rows):
        if before_status_rows[index][1] != after_status_rows[index][1]:
            before_status_rows[index].append(after_status_rows[index][1])
            before_status_rows[index].append(
                str(
                    float(after_status_rows[index][1])
                    - float(before_status_rows[index][1])
                )
            )
    diff_rows = [item for item in before_status_rows if len(item) == 4]
    result["SESSION_STATUS(DIFFERENT)"]["rows"] = diff_rows
    return result