随笔分类 -  性能优化

摘要:一、绑定执行计划 Oracle存在某个SQL多个执行计划的情况,那么如何快速将Oracle 好的执行计划,绑定到不好的SQL上呢? 由于版本的演进,绑定执行计划在10g 一般使用sql profile; >=11g之后,大部分使用spm就可以了。 本篇文档针对这两种绑定执行计划的方式进行了梳理。 有 阅读全文
posted @ 2021-10-19 20:21 绿茶有点甜 阅读(4355) 评论(0) 推荐(1) 编辑
摘要:一、需求,如何根据存储过程定位慢SQL? 需求说明,数据库执行的SQL出现性能问题,如何是单条SQL比较好找到问题SQL,但是如过是存储过程呢? 存储过程中可能会衍生出不同的动态SQL,那么具体调用存储过程中,存储过程执行慢在什么SQL的位置呢? 二、方法 2.1 Trace 10046 SQL>e 阅读全文
posted @ 2021-07-13 14:24 绿茶有点甜 阅读(1388) 评论(0) 推荐(0) 编辑
摘要:一、问题概述 需求:客户反馈dg库执行SQL比主库慢一备,其实和上一个cache的案例是一个客户,但是场景不同,本次使用了cache,但是效果还是不理想,客户不开心,废话不多说。 1) 客户执行一条sql,主库执行时间<<备库执行的时间; 2)上前观察dg cache的情况,发现SQL涉及的对象不再 阅读全文
posted @ 2021-04-20 19:19 绿茶有点甜 阅读(646) 评论(0) 推荐(1) 编辑
摘要:一、问题:客户反馈在生产库和测试库执行相同SQL,测试库执行比生产库慢一倍 问题摆在这里,需要进行分析? 啥??? 版本11.2.0.4,都是单实例,主机系统硬件配置差不多。 二、对比SQL的执行效率 set linesize 500 set termout off alter session se 阅读全文
posted @ 2021-04-19 19:29 绿茶有点甜 阅读(228) 评论(0) 推荐(0) 编辑
摘要:场景: 客户有一套Oracle 11.2.0.4 RAC ,现有一个监控软件,每天定时登录db执行一批次SQL,这几天采集程序无法正常采集就中断了; 软件开发人员排查发现,只要查询表空间涉及dba_free_space的SQL执行时间变成了2分钟!采集程序由于查询时间过长,超时中断连接; 一、慢sq 阅读全文
posted @ 2021-02-10 09:41 绿茶有点甜 阅读(1116) 评论(0) 推荐(0) 编辑
摘要:一、表关联时执行计划filter代表什么? http://www.oracleplus.net/arch/1026.html 实验数据准备 SQL> create table scott.htz1 as select * from dba_objects; SQL> create table sco 阅读全文
posted @ 2021-02-02 11:17 绿茶有点甜 阅读(1868) 评论(0) 推荐(0) 编辑
摘要:1.1问题现象 应用反馈业务执行SQL响应超时,需要数据库排除DB是否存在问题,创建AWR观察到top event 新增enq: US - contention ??? 1.2问题分析 1) DB Time指标 2020-11-12 17:30 18:00 DB time 3310.19 2020- 阅读全文
posted @ 2020-11-13 15:53 绿茶有点甜 阅读(778) 评论(0) 推荐(0) 编辑
摘要:假设一个表,10个列,字段列长度分布均匀。 一个表10G,那么一个列的索引+rowid,肯定是在1G+ 例如有个场景:一个客户数据库,一个业务表,记录STATUS状态列,欠费A,正常B。 如果没到月底,只统计欠费的少量数据,如何创建相匹配的索引。 如果一个表有1个亿,欠费数量只有500时! 如果常规 阅读全文
posted @ 2020-07-21 19:42 绿茶有点甜 阅读(377) 评论(0) 推荐(0) 编辑
摘要:开发DBA,对Oracle大表治理流程如下: 1.创建temp表,与生产环境大表相同表结构; 2.对生产环境大表rename to table_name_bak; 3.对temp表 rename to table_name 生产环境表; 4.此时新的业务表无数据,insert into table_ 阅读全文
posted @ 2020-07-05 17:24 绿茶有点甜 阅读(260) 评论(0) 推荐(0) 编辑
摘要:SQL调优 --定位SQL 查询当前正在执行的SQL select INST_ID ,sid ,serial# ,USERNAME ,STATUS ,MACHINE ,SQL_ID ,EVENT ,(sysdate-LOGON_TIME)*86400 as "s" ,LAST_CALL_ET fro 阅读全文
posted @ 2020-05-21 12:22 绿茶有点甜 阅读(304) 评论(0) 推荐(0) 编辑
摘要:数据库Oracle 11.2.0.4 RAC 2节点,业务反馈SQL执行缓慢,发现执行计划是全表扫描,前一天是走索引很快,猜测是统计信息不准确导致。 后续对分区表99G,收集统计信息后,业务反馈SQL走索引,恢复正常。 一、实际上收集统计信息的操作 观察如下链接http://www.oraclepl 阅读全文
posted @ 2020-05-19 22:13 绿茶有点甜 阅读(1859) 评论(0) 推荐(0) 编辑
摘要:一、问题 客户反馈,业务hang死,创建问题时段awr,top event 是checkpoint incomplete 1.1、awr,top event 可以发现是log file switch(checkpoint incomplete) 这个等待事件是指current log file 写满 阅读全文
posted @ 2020-04-29 21:34 绿茶有点甜 阅读(504) 评论(0) 推荐(0) 编辑
摘要:对客户DB进行巡检,发现TOP EVENT是LOG FILE Sequential read 等待事件说明 https://www.xuebuyuan.com/zh-hant/1743045.html 這個等待事件通常發生在對redo log信息進行讀取的時候,比如在線redo的歸檔操作,ARCH進 阅读全文
posted @ 2020-04-28 22:41 绿茶有点甜 阅读(891) 评论(0) 推荐(0) 编辑
摘要:目前有个客户SQL存在一些性能问题,在自己环境测试时,发现SQL执行计划存在索引全扫描,索引快速全扫描? 然后观察如下链接 https://www.cnblogs.com/xqzt/p/4467038.html 疑问,index fast full scan是多快读,index full scan是 阅读全文
posted @ 2020-04-14 09:26 绿茶有点甜 阅读(295) 评论(0) 推荐(0) 编辑
摘要:需求:一个SQL执行特别慢,无法返回结果,需要进行优化,最终返回结果即可。 一、SQL分析 二、尝试执行,观测执行计划 三、修改SQL 四、问题总结 一、SQL分析 SQL> select sid,serial#,event,sql_id,status,(sysdate-logon_time)*86 阅读全文
posted @ 2019-01-06 18:45 绿茶有点甜 阅读(636) 评论(0) 推荐(0) 编辑
摘要:SQL查询记录,记录是如何从磁盘中读取的呢? 有几种访问方式? 本次测试探讨数据文件离散读无法跨区,因此单块读(顺序读)存在特殊场景,一个表的一个块在某个区中,Oracle查询记录及时全表扫描,也会产生单块读现象。 文档结构如下: 1.解释说明oracle数据文件从磁盘读取有几种方式 2.创建测试对 阅读全文
posted @ 2018-12-31 20:24 绿茶有点甜 阅读(357) 评论(0) 推荐(1) 编辑
摘要:前因: 思路: 1.找到sql_text,sql_id 2.查看执行计划 3.查询sql涉及对象的对象数据量,段大小,行数量,where条件列,是否存在索引,列的选择读情况如何 4.总结,优化整改 1.找到sql_text,sql_id 2.查看执行计划 GROUP_NO NOT NULL NUMB 阅读全文
posted @ 2018-12-18 21:36 绿茶有点甜 阅读(835) 评论(0) 推荐(0) 编辑
摘要:Max(rowid)是否走B树索引 测试:SQL文本Max(rowid)执行计划是否走B树索引测试 一、猜测执行计划 当SQL语句中,执行max(rowid)时,执行计划猜测: A走B树索引全索引范围扫描 B走B树索引根-茎-叶块扫描 C不走索引,全表扫描 二、测试 1#测试用户scott,查询索引 阅读全文
posted @ 2018-05-26 21:36 绿茶有点甜 阅读(964) 评论(0) 推荐(0) 编辑