首页 > 数据库 >【Java】使用Druid连接池的监控面板排查慢SQL

【Java】使用Druid连接池的监控面板排查慢SQL

时间:2022-08-26 16:59:23浏览次数:46  
标签:00 rows Java .. druid Druid 监控 SQL

 

默认在后台服务的地址:

http://localhost:8078/druid/login.html

  

账号信息放在配置文件中获取:

server:
  port: 8078
 
spring:
  datasource:
    druid:
      stat-view-servlet:
        loginUsername: admin # 访问druid监控界面的用户名密码
        loginPassword: 123456
      max-pool-prepared-statement-per-connection-size: 20
      filters: stat,wall
      connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

 

starter依赖:

		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid-spring-boot-starter</artifactId>
			<version>1.1.10</version>
		</dependency>

  

登陆后,主要看这两个功能:

【SQL监控】和【URI监控】

 

URI监控可以查看接口响应的情况:

可以对每个字段进行排序操作,要查看响应最慢的接口,倒序【请求最慢】的字段即可

 

其次是查看【SQL监控】

在这里查看慢SQL:

 

点击后可以查看SQL,但是没有参数,只有占位符

 

分析慢SQL的做法是看SQL执行计划:

 

MySQL使用Explain关键字:

mysql> EXPLAIN 
SELECT * 
FROM `ymcd_aisw`.`aisw_merchant` 
WHERE merchant_no = 'AISW-36072521169083';
+----+-------------+---------------+------+-----------------+-----------------+---------+-------+------+-----------------------+
| id | select_type | table         | type | possible_keys   | key             | key_len | ref   | rows | Extra                 |
+----+-------------+---------------+------+-----------------+-----------------+---------+-------+------+-----------------------+
|  1 | SIMPLE      | aisw_merchant | ref  | IDX_MERCHANT_NO | IDX_MERCHANT_NO | 63      | const |    1 | Using index condition |
+----+-------------+---------------+------+-----------------+-----------------+---------+-------+------+-----------------------+
1 row in set (0.04 sec)

 

Oracle使用PL\SQL工具创建SQL执行计划:

 Plan Hash Value  : 3262553821 

------------------------------------------------------------------------------
| Id | Operation            | Name         | Rows  | Bytes | Cost | Time     |
------------------------------------------------------------------------------
|  0 | SELECT STATEMENT     |              |     1 |       |   68 | 00:00:01 |
|  1 |   SORT AGGREGATE     |              |     1 |       |      |          |
|  2 |    TABLE ACCESS FULL | TE_NONLIVING | 15024 |       |   68 | 00:00:01 |
------------------------------------------------------------------------------

  

 

PostgreSQL使用关键字Explan Analyze:

postgres=# explain analyze
SELECT name FROM test WHERE id = 10000;

                                                      QUERY PLAN
-----------------------------------------------------------------------------------------------------------------------
 Gather  (cost=1000.00..107139.34 rows=1 width=11) (actual time=1.020..708.268 rows=1 loops=1)
   Workers Planned: 2
   Workers Launched: 2
   ->  Parallel Seq Scan on test  (cost=0.00..106139.24 rows=1 width=11) (actual time=449.350..683.611 rows=0 loops=3)
         Filter: (id = 10000)
         Rows Removed by Filter: 3333333
 Planning Time: 0.169 ms
 Execution Time: 708.320 ms
(8 rows)

  

 

标签:00,rows,Java,..,druid,Druid,监控,SQL
From: https://www.cnblogs.com/mindzone/p/16628086.html

相关文章

  • mysql查询结果输出到文件
    方法一:直接执行命令:mysql> selectcount(1)fromtable intooutfile'/tmp/test.xls';QueryOK,31rowsaffected(0.00sec)在目录/tmp/下会产生文件test.xls遇到的......
  • 数据分析大作战,SQL V.S. Python,来看看这些考题你都会吗 ⛵
    ......
  • Mysql 自定义随机字符串
    Mysql自定义随机字符串-搬砖工奶爸-博客园 https://www.cnblogs.com/--net/p/5784371.html 前几天在开发一个系统,需要用到随机字符串,但是mysql的库函数有没有直......
  • 【SQL脚本编写经验 - SQL关联删除】
    问题概述:根据删除临时表中的字段(dpt_code&fp_code)去删除表中数据DELETEFROMfirstFROMBGT_projectsfirstINNERJOINneed_delete_tempsecondONfirst.dpt_code......
  • 代码审计(Java)——WebGoat_RequestForgeries
    一、Cross-siteRequestForgeries1.level3 这里的level3,就是限制了Referer的参数值为空或者是不等于host即可,单纯为了教学而设计的题目,没啥可说的~因......
  • MySQL数据库工具-SQLYog快捷键大全
    Ctrl+M  创建一个新的连接Ctrl+N  使用当前设置新建连接Ctrl+F4  断开当前连接对象浏览器F5  刷新对象浏览器(默认)Ctrl+B  设置焦点于对象浏览器SQL窗......
  • JavaScript变量及声明
    本文介绍了如何使用语法和示例声明和使用变量。变量用于将数据存储在JavaScript代码中。在JavaScript中使用变量之前,必须先对其进行声明。让我们看一下如何声明一个变量。......
  • JavaScript if else语句
    在编写程序时,可能需要从一组给定的路径中采用一个。在这种情况下,您需要使用条件语句,以使程序可以做出正确的决定并执行正确的操作。在JavaScript中,if-else语句用于在条件......
  • JavaScript switch语句
    除了if...else之外,JavaScript还有一个称为switch语句的功能。switch是一种条件语句,它将针对多种可能的情况评估表达式,并根据匹配的情况执行一个或多个代码块。switch语......
  • Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.pr
    springboot的版本和springcloud的版本不一致导致Causedby:java.lang.ClassNotFoundException:org.springframework.boot.context.properties.Configurati错误截图......