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

Oracle 排查慢SQL cpu_time as “cpu占用时间”,buffer_gets as “缓存获取次数”,disk_reads as “磁盘读取次数”,user_io_wait_time as “IO等待时长”,plsql_exec_time as “plsql执行时长”cost as “估算成本”,cardinality as “估算输出行数”,time as “估算时间微妙”,bytes as “估算输出的字节数”,cpu_cost as “估算的CPU花费”,io_cost as “估算的IO花费” 阅读详情

一、背景:

线上反馈一张表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。

SQL 查询慢的常见原因分析 SQL查询性能问题常见原因分析及优化方法。主要问题包括:1)索引问题,如缺乏合适索引或使用不当;2)SQL编写问题,如复杂查询结构和不合理数据访问;3)数据库设计缺陷,如表结构不合理和统计信息不准;4)系统资源瓶颈,如硬件不足和并发控制;5)高级优化策略,如执行计划调优和架构调整。排查需通过执行计划分析、性能监控、慢查询日志和基准测试等方法系统定位问题。文章提供了具体优化方案和面试回答建议。 阅读详情

相关推荐

确定Oracle SQL语句性能瓶颈(9)

本文详细说明了Oracle SQL优化时性能瓶颈的确定,同时,结合实例对其进行了深入讲解。

数据库生态圈(RDB & NoSQL & Bigdata)——专注于关系库应用与研究(Oracle & Mysql & Postgresql & SQL Server ) 801

oracle数据库慢查询SQL

SQL语句文本不同:即使SQL语句的逻辑相同,但如果SQL语句的文本不同(比如空格、大小写等),Oracle也会将它们当作不同的SQL语句进行处理。绑定变量不同:如果SQL语句使用了绑定变量,即在SQL语句中使用了占位符,那么不同的绑定变量值会导致不同的SQL语句被加入到共享池中。不同的解析环境:在不同的解析环境下,相同的SQL语句可能会被多次解析并加载到共享池中,比如在不同的会话或者不同的数据库连接中。但是分页查询总数的sql语句执行五次,5.932s,3.78s,2.89s, 2.5s,1.9s。

喜羊羊love红太狼 6678

Sony DPT RP1/CP1破解攻略

前言 自己有一台Sony DPT CP1和一台kindle,两个都已经用了很多年。直到最近发现微信读书上经常可以找到一些免费而且不错的书,所以就萌生了在两台机器上使用微信读书的想法。kindle比较容易实现,直接打开内置浏览器,进入微信读书网页版就行了,而Sony的电纸书则只能通过破解+安装微信读书的方式实现。大概弄了两三个小时吧,也遇到了一些问题,所以这里记录一下整个过程,希望能方便后来的使用者。 首先感谢HappyZ, osc_t5nbj8ds。前者是提供公开破解的方法的大神,后者则是解决了我遇到的问题

weixin_43467572的博客 1万+

Oracle 慢查询了解

Oracle数据库慢查询了解

u010738038的专栏 4340

Sigrity IBIS建模实战:如何用T2B工具快速转换SPICE模型(附避坑指南)

本文详细介绍了如何使用Sigrity T2B工具将SPICE模型高效转换为IBIS模型,涵盖从环境配置、模型预处理到转换流程和验证策略的全过程。通过实战案例和避坑指南,帮助硬件工程师掌握高速电路设计中的IBIS建模技术,提升信号完整性分析效率。

weixin_29243279的博客 392

YooAsset 2.2.12四层加密架构:跨平台资源安全实战指南

AssetBundle加密是Unity热更新安全的核心环节,其本质是通过算法、密钥管理与生命周期协同实现资源全链路防护。传统方案常陷于‘打包后加密’的误区,导致内存开销大、跨平台兼容差、逆向防护弱。YooAsset 2.2.12提出打包层、传输层、加载层、运行层四层防护架构,将加密前置到资源序列化前,并依托BundleHeader实现动态算法协商与密钥分发,显著提升iOS/Android/WebGL三端一致性。该方案兼顾AES-128等通用算法与SM4等国密支持,同时通过IMemoryDecryptor实现

weixin_32428571的博客 414

Oracle 慢查询排查步骤

Oracle 慢查询排查步骤

云满笔记 1万+

SpringDoc 基本使用指南

SpringDoc 凭借零配置启动注解简洁和深度兼容 Spring 生态的优势,已成为 Spring Boot API 文档的首选工具。自动化- 减少手动维护文档的成本;标准化- 严格遵循 OpenAPI 3 规范;可扩展- 分组、安全控制灵活适配复杂项目。访问即可查看交互式文档(默认路径)

墨鸦的博客 1万+

oracle执行很慢,这句为什么执行特别慢解决办法

当前位置:我的异常网» Oracle开发»这句为什么执行特别慢解决办法这句为什么执行特别慢解决办法www.myexceptions.net网友分享于:2013-06-07浏览:4次这句为什么执行特别慢SQL> select sum ( charges ) from inp_bill_detail where performed_by ='34' and rcpt_no >=...

weixin_29370077的博客 523

Unity3d移动端性能优化

以下条目主要针对移动端,大部分也适合PC端 一、Profiler的使用 1.性能优化应贯穿项目开发的全过程,如需求(性能能不能达到要求)、设计、开发、测试等。不能开发结束才优化性能。 2.官方推荐的优化工具是【Window】->【Profiler】 3.确认瓶颈是CPU-bound(Gfx.WaitForCommands)还是CPU-bound(Gfx.WaitForPresent) 4.内存分析使用Memory Profiler 二、内存优作 5.减少内存收集的影...

zouxin_88的专栏 3055

liquibase介绍

1、Liquibase还是Flyway Flyway和Liquibase都支持专业数据库重构和版本控制所需的所有功能,因此您将始终知道要处理的数据库模式的版本以及它是否与软件版本匹配。两种工具都集成在Maven或Gradle构建脚本中以及Spring Boot生态系统中,因此您可以完全自动化数据库重构。 Flyway使用SQL定义数据库更改,因此您可以定制SQL脚本,使其与基础数据库技术(例如Oracle或PostgreSQL)良好地配合使用。另一方面,使用Liquibase,您可以通过使用XML,YA

赶路人儿 7532

Oracle sql 执行时间突然变长的一点排查思路

最近接到组里的小朋友问我说,开发给他提的一个问题,程序的日常创单的服务突然数据库执行时间激增,一看截图,平时sql都是毫秒级返回数据,在昨晚2点开始突然激增到1到2秒才返回,服务又是订单创建服务,所以需要排查问题; 因为小朋友没有给到具体sql,只给书入参时间和说是创建订单的服务,所以第一步应该是找到SQL文本; 通过Oracle慢sql查询定位到2点左右的慢sql,由于我们系统我设定的snap_id是每小时刷一次,所以昨晚两点的snapid就能获取到,通过snap_id找到2-3点左右的慢sql.

布偶猫爸爸的博客 3447

前端开发 - 完美解决video.js和flv.js视频同时播放数量限制的问题,即浏览器针对同一域名的请求限制问题(解决flv.js/video.js在页面播放最多不超过6个问题、浏览器并发请求限制数

flv.js,video.js,vue,reactive,uniapp,前端开发,flv视频同时播放有限制怎么办,浏览器限制多个视频同时播放怎么办,使用flv.js在前端播放,最多只能播放6个视频,突破浏览器域名并发限制,如何解决flvjs与videojs视频播放同时播放数量限制,video.js 一个页面同时播放多个视频的实例代码,解决网页视频最大只能播放6路的问题,浏览器只能播放6路http-flv流的解决方法,一个浏览器播放5个或者6个flv的视频就不能播放了,video.js 无法在页面同时播放多个

✅ 精选推荐文章 4994

Oracle查看SQL执行计划的方法

通过这些方法,我们可以更深入地理解SQL语句的执行过程,并据此进行性能优化,虽然文档提供了多种查看执行计划的方法,但在实际应用中,如何根据不同的业务场景和性能需求,选择最合适的执行计划查看方法,以及如何根据执行计划的结果进行有效的SQL优化,仍然是一个值得深入探讨的问题。当检测到符合条件的SQL执行时,Oracle数据库将默认启动对该SQL语句的监视过程,并将收集到的相关数据存储于专用的内存区域中,以便后续用于性能分析与优化。在Oracle数据库中,执行计划主要分为两类:估算的执行计划和实际的执行计划。

weixin_42145355的博客 2532

10天冲刺国自然基金!用这套实战AI提示词指令教程,助你中标率翻倍!亲测DeepSeek和ChatGPT不好用

虽然以上国自然提示词指令经过反复实测,但并不是万能无脑帮你搞定所有,大模型AI的特性是你专业领域能力越强,它的智商表现就会更加强大,通过以上提示词教程的使用,大大提升中标概率是肯定的。还有就是大模型的使用上,不是市面上大家都说好的就一定适用,目前来看,Gemini和Claude的两个模型是非常适合国自然本子的修改的。在使用大模型进行国自然本子撰写修改时,首先是角色的设定,然后是目标和背景的描述,好用的提示词指令都是要经过无数次的实测,比对输出结果后又反复调整,达到最佳的效果状态的提示词指令。

智能AI让学术科研更容易 1245

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Oracle DBA必备脚本:一秒就定位千行执行计划的SQL慢在那一步

Oracle SQL优化新技巧:利用ASH快速定位执行计划瓶颈 针对OLTP环境中短时SQL无法触发SQL Monitor的问题,本文提出利用Oracle 11g新增的ASH视图中的SQL_PLAN_LINE_ID和SQL_PLAN_HASH_VALUE两列,通过关联DBMS_XPLAN结果统计执行计划各步骤在ASH中的出现频率,出现次数越多的步骤即为性能瓶颈。该方法特别适用于执行时间短于5秒的SQL优化场景。文中展示了具体脚本的执行结果,通过分析各步骤CPU消耗占比,可快速识别需要优化的执行计划节点。文章

提供数据库技术支持(系统优化,故障处理,安装升级,数据恢复等) 720

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

plsql连接oracle特别慢

监听故障(plsql 连接数据库慢) 问题诊断分析 先简单地介绍系统的环境:是运行在 HP-UX 11.31 下的10.2.0.4的一套rac 监听采用配置,比较简单。在配置中使用的是主机名。 客户端TNSPING 测试的结果为 260ms左右。 PLSQL 连接数据库的时间,在 10s 左右。 连接上数据库后,执行 SQL 正常,SELECT返回大批量数据的速度也正常,数据库中也没有异常的 N...

qq_33947052的博客 4218

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Oracle SQL 执行

Oracle SQL 执行

u011868279的博客 5014

oracle windows下执行sql脚本

为什么我们需要用直接执行脚本呢,我们知道pl/sql一些可视化工具也可以直接把我们的sql语句粘贴进去直接执行,但是效率非常低,要是要执行的sql语句稍微大一点就会卡死,主要是只能一条一条执行,特别慢,如果我们直接执行脚本就非常快,下面我看看是如何操作的 1.首先我们打开命令行,进入dos命令 按住Windows + R 输入cmd 2. 进入到dos命令界面 3.连接oracle 输入代...

念念不忘,必有回响 4815

运维之慢sql和统计信息收集(Slow SQL and Statistical Information Collection)

慢SQL:慢SQL通常指的是执行时间超过预定阈值的SQL语句。这些语句可能会影响数据库的性能,因此需要特别关注。慢SQL的记录和分析可以帮助数据库管理员识别系统瓶颈,优化查询。统计信息:统计信息是数据库用来优化查询的信息,比如表的行数、索引的分布情况等。数据库管理员需要定期更新这些统计信息,以保证查询优化器能够正确地选择最优的执行计划。

Linux运维老纪的博客 1862

Oracle sql语句执行顺序

对于大量的、频繁访问的SQL语句,如果不采用Bind 变量的方式,哪Oracle会花费大量的Shared latch与CPU在做Hard parse处理,所以,要尽量提高语句的重用率,减少语句的分析时间,通过了解Oracle SQL语句的分析过程可以明白Oracle的内部处理逻辑,并在设计与实现上避免。当你执行一个SQL语句(有时被称为一个游标)时,如果它和之前的执行过的语句完全相同,ORACLE就能很快获得已经被解析的语句以及最好的执行路径.。这个功能大大地提高了SQL的执行性能并节省了内存的使用。

huidaoqichu的博客 803

oracle固定执行计划1-sql profile

oracle固定执行计划SQL Profileautomatic类型的sql profile SQL Profile 1、SQL profile在Oracle 10g引入 2、通过为特定的SQL文本指定优化器的一些信息,从而引导优化器生成更为合理的SQL执行计划。达到不修改SQL文本就可以改变并指定执行计划的目的。 3、通常和SQL Tuning Advisor一起用 4、也可以手工设置 automatic类型的sql profile 1、构造测试环境: session 1: conn scott/tige

fanzhuozhuo的博客 1593

oracle group by执行慢,一次对group by时间导致的慢查询的优化

前言:最近在测试环境中点击一个图表展示页面时,半天才得到后台响应的数据进行页面渲染展示,后台的响应很慢,这样极大的降低了用户的体验;发现这个问题后马上进行了排查 ,通过排查发现是由一个查询很慢的 group by 语句导致的;本文主线:①、简单描述下排查步骤;②、对 group by 查询慢进行优化;简单描述下排查步骤:排查主要分为了两个步骤:后台接口的监控,看看哪个方法调用时耗时多数据库开启慢...

weixin_42362931的博客 7261

Oracle 使用coe_xfr_sql_profile.sql迁移执行计划

前面Oracle 如何不改变SQL为其绑定构造的执行计划介绍了不改变sql语句而替换其执行计划的方法,但有一个问题是里面的方法都需要执行计划和目标sql在库中cache或AWR中存在,否则无法使用。 一、 问题背景 来看这样一个场景,有一个sql在测试环境执行很快,但在生产环境中执行很慢并且没有过好的执行计划。另外该sql特别复杂,难以通过简单分析判断出通过加哪些hint能生成出快的执行计划。 能否把测试环境中快的执行计划迁移到生产环境中给问题sql绑定? 二、 解决方法 coe_...

Hehuyi_In的博客 4181

Oracle 如何不改变SQL为其绑定构造的执行计划

前面几篇文章介绍的方法只能在sql本身有过好执行计划的时候将其固定,如果sql从未有过好的执行计划,需要添加hint但又无法修改sql代码时,之前的方法就不大合适,需要使用新的方法。 一、 问题背景 遇到过的一个案例就十分符合这种情况。11.2的数据库A中发现一个慢sql,执行超过4万秒。查询program得知是开发用的datagrip工具自动执行的语句,无法关闭也无法修改该sql,实际对业务功能没一点作用,对DB压力还特别大。 select O.owner as synonym_schema.

Hehuyi_In的博客 2544

oracle 执行sql路径,如何指定 SQL 执行路径

原标题:如何指定 SQL 执行路径作者韩涛,来自社区“平台人生”专栏http://www.talkwithtrend.com/Column/detail/id/11就像是每个人都会认识一个叫小明的人一样,每个DBA的库中都会存在这样一种SQL。这种SQL所涉及的表上通常有IND1_TABLE和IND2_TABLE两个索引,当使用 IND2_TABLE索引执行SQL时可以很快返回结果,但偏偏ORAC...

weixin_34938347的博客 597
上一篇: Linux服务器LVM分区扩展
下一篇: 查询Oracle表空间占用和新建表空间文件
一博一言
博客等级 码龄15年 307粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值