一条运行了3天的"简单"的sql

简介: 早上刚到公司,查看系统的负载,就马上看到一个进程的执行时间已经有3天了。 而且cpu的消耗极高。 Tasks: 2374 total,  19 running, 2354 sleeping,   0 stopped,   1 zombie Cpu(s): 21.
早上刚到公司,查看系统的负载,就马上看到一个进程的执行时间已经有3天了。
而且cpu的消耗极高。
Tasks: 2374 total,  19 running, 2354 sleeping,   0 stopped,   1 zombie
Cpu(s): 21.7%us,  2.7%sy,  0.0%ni, 74.5%id,  0.0%wa,  0.1%hi,  0.9%si,  0.0%st
Mem:  371307496k total, 97308748k used, 273998748k free,  1750680k buffers
Swap: 377487328k total,     9440k used, 377477888k free, 20010856k cached


  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                        
31330 xxxx   25   0 18.2g  30m  24m R 100.0  0.0   5557:32 oraclePRODB1 (LOCAL=NO)            

马上通过process定位对应的session,看看这个session正在做什么操作。
查看锁的情况,没发现异常的锁,看来不会是大的dml操作。

以下是定位到的信息,最后发现是有人使用sqldevelopper做了一个"简单"的查询。

xxxxx  23328 20824  0 11:53 pts/4    00:00:00 ksh showpid.sh 31330

xxxxx  31330     1 99 Aug28 ?        3-20:45:06 oraclePRODB1 (LOCAL=NO)

##############################################

 

       SID    SERIAL# USERNAME        OSUSER          MACHINE              PROCESS         TERMINAL        TYPE       LOGIN_TIME

---------- ---------- --------------- --------------- -------------------- --------------- --------------- ---------- -------------------

      3482      42183 xxxxxx             xxxxxxx           xxxxxxxxx      692             unknown         USER       2014-08-28 14:59:29

 

àquery is running now.

SQL_ID                         SQL_TEXT

------------------------------ ------------------------------------------------------------

210ndtcx5fwgs                  SELECT COUNT(*)  FROM SUBSCRIBER S , SERVICE_ACTIVITY SA

 

你没看错,sql语句就一行,而且是一个select count的语句。但是很显然在做表连接的时候就埋下了炸弹,68T行的数据,百亿的数据结果。

来看看对应的执行计划吧。

Plan hash value: 1483588918                                                       
                                                                                  
----------------------------------------------------------------------------------
| Id  | Operation         | Name                 | Rows  | Cost (%CPU)| Time     |
----------------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |                      |       |     24G(100)|          |
|   1 |  SORT AGGREGATE   |                      |     1 |            |          |
|   2 |   NESTED LOOPS    |                      |     68T|    24G  (1)|999:59:59 |
|   3 |    INDEX FULL SCAN| SERVICE_ACTIVITY_PK |    51M| 31553   (1)| 00:06:19 |
|   4 |    INDEX FULL SCAN| SUBSCRIBER_PK        |  1320K|   481   (1)| 00:00:06 |
----------------------------------------------------------------------------------


所以在开发,测试,生产环境都需要注意,这种问题如果发生的话还是很郁闷的。                                                                                  
目录
相关文章
|
2月前
|
前端开发 JavaScript Java
基于springboot+vue开发的校园食堂评价系统【源码+sql+可运行】【50809】
本系统基于SpringBoot与Vue3开发,实现校园食堂评价功能。前台支持用户注册登录、食堂浏览、菜品查看及评价发布;后台提供食堂、菜品与评价管理模块,支持权限控制与数据维护。技术栈涵盖SpringBoot、MyBatisPlus、Vue3、ElementUI等,适配响应式布局,提供完整源码与数据库脚本,可直接运行部署。
121 0
基于springboot+vue开发的校园食堂评价系统【源码+sql+可运行】【50809】
|
SQL 关系型数据库 MySQL
拖.sql文件到cmd中运行
通过命令行工具cmd来运行SQL脚本文件,包括登录MySQL数据库、选择数据库和使用source命令执行脚本文件的步骤。
106 0
|
SQL 存储 缓存
一条 SQL 查询语句是如何运行?
本文详细剖析了SQL语句在MySQL中的执行流程,涵盖客户端、Server层及存储引擎层。Server层包括连接器、查询缓存、分析器、优化器与执行器等核心组件。连接器管理连接与权限校验,查询缓存加速查询,分析器负责词法与语法分析,优化器提升SQL性能,执行器调用存储引擎接口。了解这些流程有助于深入理解MySQL内部机制及其优化原理。
239 0
|
SQL 弹性计算 资源调度
云服务器 ECS产品使用问题之bin/spark-sql --master yarn如何进行集群模式运行
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
SQL 关系型数据库 分布式数据库
PolarDB产品使用问题之sql运行报错是神么原因
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
SQL 分布式计算 大数据
MaxCompute操作报错合集之执行多条SQL语句时,使用同一个实例来运行,遇到报错,该如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
224 1
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之重新上传后只有SQL无法运行,而Python可以正常运行,是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
SQL 分布式计算 DataWorks
MaxCompute产品使用问题之如何通过临时查询功能来书写和运行SQL语句
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
142 0
|
SQL 存储 数据处理
Flink SQL 问题之提交程序运行报错如何解决
Flink SQL报错通常指在使用Apache Flink的SQL接口执行数据处理任务时遇到的问题;本合集将收集常见的Flink SQL报错情况及其解决方法,帮助用户迅速恢复数据处理流程。
511 3
|
SQL 资源调度 Oracle
Flink CDC产品常见问题之sql运行中查看日志任务失败如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。

热门文章

最新文章