问题描述:

发现有sql查询全表数据,慢查询语句,根据druid上的sql监控查看到。

主要根据标红的列确定问题sql。

点击进去可以看到详细sql信息。

问题排查目标:

发现这个语句高层调用方特别多,目标是排查出上层(controller)哪个方法没有判断好条件,无条件传参到底层进行的全表查询。

问题排查手段

使用Arthas中的stack和watch命令,另外可以辅助用monitor命令。

watch命令显示调用方法的参数信息并可以通过方法响应时间过滤出出现问题的那次调用的时间点。

  • -x表示遍历深度,可以调整来打印具体的参数和结果内容,默认值是1。
  • -n 代表打印几次
  • -b 代表方法执行前
  • -s 代表方法执行后

使用文档:https://arthas.aliyun.com/doc/watch.html

stack命令查询实时方法调用链路,根据上面时间点stack中查询对应时间点的调用链路方法,定位问题原因。

  • -n 代表打印次数
  • 可以排除调用链路

使用文档:https://arthas.aliyun.com/doc/stack.html

全表查询sql执行链路排查的更多相关文章

  1. Entity Framework Core的坑:Skip/Take放在Select之前造成Include的实体全表查询

    今天将一个迁移至 ASP.NET Core 的项目放到一台 Linux 服务器上试运行.站点启动后,浏览器打开一个页面一直处于等待状态.接着奇怪的事情发生了,整个 Linux 服务器响应缓慢,ssh命 ...

  2. Entity Framework Code First 在Object Join Linq查询时出现全表查询的语句。

    最近一个项目,使用微软的Entity Framework的ORM框架的项目,部署到现场后,出现了系统缓慢,多个客户端的内存溢出崩溃的问题. 打开了SQL Server Profiler(SQL Ser ...

  3. Entity Framework - Func引起的数据库全表查询

    原文:http://www.cnblogs.com/dudu/archive/2012/04/01/enitity_framework_func.html 使用 Entity Framework 最要 ...

  4. 使用Entity Framework Core需要注意的一个全表查询问题

    .NET Core 迁移工作如火如荼,今天在使用 Entity Frameowork Core(又名EF Core)时写了下面这样的 LINQ 查询表达式: .Where(u => u.Id = ...

  5. 多表查询sql语句

    多表查询sql语句 1 --解锁SCOTT用户 2 alter user scott account unlock 3 --检索指定的列 4 select job,ename,empno from e ...

  6. 查询SQL执行情况

    /* 查询SQL执行情况 包含逻辑读取信息,执行信息等情况*/ SELECT creation_time N'语句编译时间' ,last_execution_time N'上次执行时间' ,total ...

  7. 优化一个奇葩表设计上的全表扫描SQL

    之前在一个比较繁忙的系统抓到的耗时长.消耗CPU多的一条SQL,如下:SELECT * FROM Z_VISU_DATA_ALARM_LOG TWHERE TO_DATE(T.T_TIMESTR, ' ...

  8. Mysql避免全表扫描sql查询优化 .

    对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引: .尝试下面的技巧以避免优化器错选了表扫描: ·   使用ANALYZE TABLE tbl_n ...

  9. 数据库优化之锁表查询 (Sql Server)

    查询锁表语句 select request_session_id spid,DB_NAME(resource_database_id) databaseName, OBJECT_NAME(resour ...

  10. 表连接sql执行计划学习

    循环嵌套连接(Nested Loop Join) 合并连接(Merge Join) 哈西匹配(Hash Join) 文章:浅谈SQL Server中的三种物理连接操作 循环嵌套,如果内循环列上有索引, ...

随机推荐

  1. k8s笔记——NodePort暴露nginx-controller实现https自动跳转自定义nodePort端口

    安装nginx-controller并暴露nodePort helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx ...

  2. windowsbat命令大全

    Bat文件的创建及其命令大全 一.bat文件的创建 新建txt文本文件 向文本文件中输入命令 保存并修改文本文件后缀为.bat 双击保存后的bat文件,运行 二.bat命令大全 echo 和 @ @ ...

  3. vs code python(Pylance server) crash

    The Pylance server crashed 5 times in the last 3 minutes. The server will not be restarted. See the ...

  4. 为游戏接入ios sdk的oc学习笔记

    开发手机游戏,需要接入ios的sdk,截止2021年7月23日虽然swift已经推出一些年头,但对于大部分的渠道sdk,还是oc的代码. oc不仅仅用来开发ios,还是mac上的app开发语言 从新手 ...

  5. 【4】python读写文件操作---详细讲解!

    相关文章: 全网最详细超长python学习笔记.14章节知识点很全面十分详细,快速入门,只用看这一篇你就学会了! [1]windows系统如何安装后缀是whl的python库 [2]超级详细Pytho ...

  6. Python二分法

    二分法 尽管二分搜索通常优于顺序搜索,但当n较小时,排序引起的额外开销可能并不划算.实际上应该始终考虑,为了提高搜索效率,额外排序是否值得.如果排序一次后能够搜索多次,那么排序的开销不值一提.然而,对 ...

  7. [MySQL] 给root用户设置权限

    mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'root'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'roo ...

  8. linux(centos) 下搭建svn服务器

     1. 使用yum安装svn yum -y install subversion 安装完成之后,验证安装结果 此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行 若需查看svn安 ...

  9. 【求助】navicat导入monogdb数据报错

    navicat在进行mongodb数据导入时报错 Navicat Premium 版本 16.1.3 (64-bit) Windows 11 Unknown Internal Error (A7052 ...

  10. 利用显卡的SR-IOV虚拟GPU技术,实现一台电脑当七台用

    背景 虚拟桌面基础设施(VDI)技术一般部署在服务器,可以实现多个用户连接到服务器上的虚拟桌面.随着桌面计算机性能的日益提升,桌面计算机在性能在很多场景下已经非常富余,足够同时满足多个用户同时使用的需 ...