当前位置: 首页 > news >正文

Oracle线上执行SQL特别慢的原因分析

一、背景:

线上反馈一张表select * from table where id=xxx语句执行特别慢,超过60s超时不能处理,第一直觉是索引失效了,开始执行创建索引语句create index index_name on table() online。但是执行了超过20分钟索引还没有创建成功,下意识觉得不正常。

按照过往经验,我应该查查是否有锁表的,但是当时不知道那根脑子抽筋了,在客户现场plsq中瞎点开了,突然发现一个窗口中的语句如下:

for update!!!

for update!!!

for update!!!

这敏感的字眼刺伤了我的眼睛。

再左上角一看,事务未提交的,谁干的!!!

赶快先回滚了,select和insert正常了,内心波涛汹涌,在公司群里发了图片发了牢骚。

二、锁表分析:

使用 plsql进行表数据编辑时如果是用for update 编辑,那么编辑完如果不提交就会直接锁表,还是全表锁。

一定一定务必使用rowid进行更新操作,使用rowid进行更新数据时,属于行级锁,编辑时表不受影响,直到最后一步提交时才当做一个原子去上锁/执行/释放锁一步完成。所以一定要用rowid,官方也推荐用rowid,弃用for update。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Spring Boot(八十一):Sa-Token快速实现API接口签名安全校验
  • 《JavaSE》---21.<简单认识Java的集合框架包装类泛型>
  • matlab simulink气隙局部放电仿真技术研究
  • 靖江美食元宇宙
  • openlayers 3d 地图 非三维 立体地图 行政区划裁剪 地图背景
  • 基于jeecgboot-vue3的Flowable流程仿钉钉流程设计器-支持VForm3表单的选择与支持
  • 安装好anaconda,打开jupyter notebook,新建 报500错
  • 二叉树的构造问题 | LeetCode刷题笔记 | 每日练习 | 深度优先遍历| 广度优先遍历 | Java
  • 【必看】基于LSTM网络的温度预测
  • 【性能优化】在大批量数据下使用 HTML+CSS实现走马灯,防止页面卡顿(一)
  • ubuntu中git log中文乱码
  • vue、js截取视频任意一帧图片
  • Linux——五种IO模型
  • Volatility:分析MS10-061攻击
  • 【总结】逻辑运算在Z3中运用+CTF习题
  • [译] 怎样写一个基础的编译器
  • 78. Subsets
  • css的样式优先级
  • EventListener原理
  • HTTP中GET与POST的区别 99%的错误认识
  • JS+CSS实现数字滚动
  • js写一个简单的选项卡
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • MySQL用户中的%到底包不包括localhost?
  • Spring核心 Bean的高级装配
  • 复杂数据处理
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 如何进阶一名有竞争力的程序员?
  • 学习使用ExpressJS 4.0中的新Router
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #NOIP 2014# day.2 T2 寻找道路
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (八)Flink Join 连接
  • (六)Flink 窗口计算
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • (自用)仿写程序
  • .“空心村”成因分析及解决对策122344
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET COER+CONSUL微服务项目在CENTOS环境下的部署实践
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .net core 使用js,.net core 使用javascript,在.net core项目中怎么使用javascript
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .Net mvc总结
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NET的数据绑定
  • .NET框架设计—常被忽视的C#设计技巧
  • ??javascript里的变量问题
  • @RequestMapping 和 @GetMapping等子注解的区别及其用法
  • [AI资讯·0612] AI测试高考物理题,最高准确率100%,OpenAI与苹果合作,将ChatGPT融入系统中,大模型在物理领域应用潜力显现
  • [BZOJ1053][HAOI2007]反素数ant
  • [C#]手把手教你打造Socket的TCP通讯连接(一)