解决DBeaver无法查看MySQL执行计划问题

DBeaver这个数据库连接工具的确很好用,但是最近在使用时发现它不能查看MySQL的执行计划

   explain execute select * from table;explain select * from table;/**点 解析执行计划按钮*/explain extended select * from table

提示内容为:“sql is not a supported statement”
经过查看DBeaver的源码找到了如下代码

public class MySQLDataSource extends JDBCDataSource implements DBSObjectSelector, DBCQueryPlanner {@Overrideprotected Connection openConnection(@NotNull DBRProgressMonitor monitor, JDBCRemoteInstance remoteInstance, @NotNull String purpose)throws DBCException {Connection mysqlConnection = super.openConnection(monitor, remoteInstance, purpose);if (!getContainer().getPreferenceStore().getBoolean(ModelPreferences.META_CLIENT_NAME_DISABLE)) {// Provide client infotry {// 注意这一行设置了 ApplicationName 信息mysqlConnection.setClientInfo("ApplicationName", DBUtils.getClientApplicationName(getContainer(), purpose));} catch (Throwable e) {// just ignorelog.debug(e);}}return mysqlConnection;}
}

注意这行代码

mysqlConnection.setClientInfo("ApplicationName", DBUtils.getClientApplicationName(getContainer(), purpose));

该行代码设置了 ApplicationName 属性,设置该属性后,发送给服务端的SQL前面都会带上一个类似于 “/* ApplicationName=DBeaver 5.1.4 - Main */ ”的信息,这个信息会导致数据库抛出“sql is not a supported statement”

解决思路:

不设置 ApplicationName,即 getContainer().getPreferenceStore().getBoolean(ModelPreferences.META_CLIENT_NAME_DISABLE) 结果为 true,让 if 的判断结果为 false ,这样就跳过了设置语句。 经查找相关配置项,发现 META_CLIENT_NAME_DISABLE 为“禁用客户端身份识别”。

解决方案:在【首选项->数据库->连接】中勾选“禁用客户端身份识别”

禁用以后再SQL编辑器中执行 explain execute select ... 就可以查看执行计划了

注:点击【解析执行计划】按钮后,DBeaver生成的执行计划语句为:explain extended select ...,extended关键字在某些MySQL版本(例如:MySQL 5.6.29)中已经不被支持

转载于:https://my.oschina.net/dush/blog/1976008

解决DBeaver无法查看MySQL执行计划问题相关推荐

  1. mysql执行计划查看_查看Mysql执行计划

    1.MySQL语法 MySql提供了EXPLAIN语法用来进行查询分析,在SQL语句前加一个"EXPLAIN"即可. 默认情况下Mysql的profiling是关闭的,所以首先必须 ...

  2. mysql 执行计划 什么用_简述MySQL的执行计划的作用及使用方法

    作为程序员,难免要和数据库打交道,一般情况下,我们不是DBA ,但是又要写很多SQL,因此SQL效率就成了很大的问题.关于SQL效率优化,除了要掌握一定优化技巧外, 还得有很多经验的积累,但是这里我们 ...

  3. Mysql执行计划含义,mysql执行计划介绍

    烂sql不仅直接影响sql的响应时间,更影响db的性能,导致其它正常的sql响应时间变长.如何写好sql,学会看执行计划至关重要.下面我简单讲讲mysql的执行计划,只列出了一些常见的情况,希望对大家 ...

  4. 怎么看mysql执行计划

    前言 mysql是关系型数据库中比较流行的一款数据库.在工作中使用mysql,难免会遇到sql执行缓慢的情况.这时候,我们就需要查看sql的执行计划,以此来分析sql执行缓慢的问题所在. 如何查看my ...

  5. mysql 执行计划 改变_数据量增加导致mysql执行计划改变解决_MySQL

    bitsCN.com 数据量增加导致mysql执行计划改变解决 收到运维同学电话,mysql服务器连接数满了,登录服务器查看,确实满了,好吧,首先增加连接数到2500,暂时提供对外服务.连接继续升高, ...

  6. mysql执行计划id相同_MySQL|MySQL执行计划

    原标题:MySQL|MySQL执行计划 使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈. explain执 ...

  7. mysql 执行计划extra_MySQL执行计划extra中的using index 和 using where using index 的区别...

    www.linuxidc.com/Linux/2017-- mysql执行计划中的extra列中表明了执行计划的每一步中的实现细节,其中包含了与索引相关的一些细节信息 其中跟索引有关的using in ...

  8. Oracle查看SQL执行计划的方式

    Oracle查看SQL执行计划的方式 获取Oracle sql执行计划并查看执行计划,是掌握和判断数据库性能的基本技巧.下面案例介绍了多种查看sql执行计划的方式: 基本有以下几种方式: 1.通过sq ...

  9. MySQL执行计划解读

    MySQL执行计划解读 http://www.cnblogs.com/ggjucheng/archive/2012/11/11/2765237.html MySQL执行计划解读 Explain语法 E ...

最新文章

  1. r语言删除csv中na行_r语言,csv数据,提取特定行
  2. python中requests.session的妙用
  3. 日志分析工具ELK(一)
  4. Scott 32 岁前端年终总结,探寻另一种可能
  5. 案例 员工信息维护系统 c# 1613925570
  6. Oracle中CHAR类型不足位数时,用空格自动补足位数
  7. 开源GIS软件初探(转载)
  8. Spring使用注解的方式实现AOP的开发——Spring AOP(七)
  9. 北京计算机应用基础考试时间,07年北京市自学考试计算机应用基础课周末开考...
  10. 2020年全国城市信息模型(CIM)新政策汇总
  11. 《阴阳师·2栀子女》原作:梦枕貘
  12. Java文件拒绝访问问题
  13. c语言编写生日祝福语大全,生日卡片祝福语(精选50句)
  14. 小新面试错题集,http1.0与1.1的区别?
  15. RESLAM/ REVO 编译 实时RGBD基于边缘的slam系统
  16. 2013 ACM-ICPC南京赛区全国邀请赛
  17. IPsec IKE第一阶段主模式和野蛮模式
  18. 不能用来修饰interface的有
  19. 2017年第三届美亚杯电子取证-个人赛WP
  20. 阿里云——OpenAPI使用——短信服务

热门文章

  1. 为世界之光——国立交通大学校歌
  2. 【自检电源快速解决显卡烧坏问题】
  3. 今日小年,愿你和家人如意平安
  4. 基于javaweb的在线蛋糕商城系统(java+jsp+jdbc+mysql)
  5. PowerToys——免费、强大、高效的微软官方效率提升工具集,办公学习宝藏软件
  6. Qt判断摄像头是否被占用的一种方式
  7. Android 荣耀手机搜不到蓝牙设备
  8. NFT新的契机,多媒体NFT聚合平台OKALEIDO即将上线
  9. win7 隐藏任务栏操作中心图标
  10. 初中毕业学计算机那个专业好,初中毕业学哪个计算机专业好