Oracle SQL 优化
Oracle SQL 优化
DB-Engineer
好好学习,天天向上
展开
-
Oracle 11g DBMS_SQLTUNE
Oracle 11g DBMS_SQLTUNE创建调优任务语法参考文档创建调优任务语法SQL text format:DBMS_SQLTUNE.CREATE_TUNING_TASK( sql_text IN CLOB, bind_list IN sql_binds := NULL, user_name IN VARCHAR2 := ...原创 2018-12-15 21:30:36 · 1132 阅读 · 0 评论 -
在有位图索引的表上进行DML操作与enq: TX - row lock contention等待事件问题分析
在位图索引的表上进行DML操作与enq: TX - row lock contention等待事件问题分析前言模拟场景总结前言本文通过模拟实验,来分析 有位图索引的表的DML操作 对数据库造成的影响。模拟场景生成数据SQL> create table bm_table (id number, name varchar2(20), gender varchar2(1));SQL...原创 2018-12-07 11:29:18 · 279 阅读 · 0 评论 -
用Merge改写优化Update
用Merge改写优化Update1. 多列关联更新改写示例2. 用Merge改写有聚合操作的Update1. 多列关联更新改写示例1. 模拟数据create table t_objects as select * from dba_objects;create table t_tables as select * from dba_tables;alter table t_objects...原创 2018-12-06 15:51:20 · 780 阅读 · 0 评论 -
从多表连接后的select count(*)看待SQL优化
从多表连接后的select count(*)看待SQL优化一朋友问我,以下这SQL能直接改写成select count(*) from a吗?SELECT COUNT(*)FROM a LEFT JOIN b ON a.a1 = b.b1 LEFT JOIN c ON b.b1 = c.c1废话不多说,直接上实验。1. 准备数据创建测试表a,b,c,并...原创 2018-09-01 12:43:37 · 5066 阅读 · 0 评论 -
分页语句where条件中的子查询有or关键字优化
背景 开发说: 有段SQL语句,去掉order by很快,有order by之后,查询1小时都无法返回结果。 我叫他把SQL扔给我看下。SQL代码及执行计划select * from (select d.*, rownum as num from (SELECT A.BILLNO, A.B...原创 2018-08-21 15:01:55 · 699 阅读 · 0 评论 -
自定义函数导致的sql性能问题
优化自定义函数原创 2017-11-29 10:00:32 · 4014 阅读 · 0 评论 -
标量子查询SQL改写
标量子查询sql优化原创 2017-11-29 10:52:28 · 715 阅读 · 0 评论 -
Delete 语句带有子查询的sql优化
Delete 语句带有子查询的sql优化原创 2017-11-29 11:19:40 · 3829 阅读 · 0 评论 -
DBLINK引起的SQL性能问题
DBLINK引起的SQL性能问题原创 2017-11-30 11:20:22 · 6398 阅读 · 0 评论 -
树形查询SQL优化一例
树形查询sql原创 2017-12-04 10:51:49 · 3393 阅读 · 0 评论 -
SQL中带有NOT IN 子查询改写
NOT IN子查询改写LEFT JOIN原创 2017-12-04 14:10:00 · 14659 阅读 · 0 评论 -
论表与表之间的关系--半连接改写
论表与表之间的关系--半连接改写原创 2017-12-05 12:48:18 · 634 阅读 · 0 评论 -
处理半连接SQL自动改写内连接SQL一例
半连接SQL优化 实战原创 2017-12-06 15:21:26 · 713 阅读 · 0 评论 -
关于latch: cache buffers chains的sql优化
关于latch: cache buffers chains的sql优化原创 2017-12-25 11:26:02 · 327 阅读 · 0 评论 -
利用WITH AS改写SQL
with as 改写sql原创 2017-12-26 10:24:18 · 3582 阅读 · 0 评论 -
一次ORA-01555问题分析,及SQL优化。
前言客户说: 我在数据库上继续运行昨日的脚本,但发现有个子过程在运行10个小时后报错: 烦请协助看看。。。 错误码是:ORA-01555: snapshot too old: rollback segment number 6 with name “_SYSSMU6$” too small ORA-02063: preceding line from CLONE 分析发生OR原创 2018-02-01 17:32:57 · 1036 阅读 · 0 评论 -
标量子查询中有ROWNUM=1怎么改?
碰到标量子查询中有ROWNUM=1怎么改?select to_date(o.postdate,'yyyymmdd'), (select cur.c_code from cur_tbl cur where cur.c_abbr=o.currencycode) as CusNo, o.dramount, round(o.dramoun...原创 2018-02-28 10:37:31 · 743 阅读 · 0 评论 -
利用Merge into 改写Update SQL 一例
前言客户说,生产系统最近CPU使用率经常达到100%,请DBA帮忙调查一下。根据客户提供的情况描述及对应时间段,我导出AWR,发现如下问题: 11v41vaj06pjd :每次执行消耗2,378,874.14 buffer 约等于18g 内存 bsfrz471nh9s4:每次执行消耗1,545,875.18 buffer 约等于12g 内存 非常大的内存消耗,而且执行频率高。 ...原创 2018-03-27 10:02:01 · 1266 阅读 · 0 评论 -
又是latch: cache buffers chains惹得祸
前言一大早,客户给我打电话说: xx,应用很慢,查询数据总是超时,让我看看。。。根据多年DBA经验,首当其冲的肯定是去查询数据库在这段时间都在干嘛。分析导出awr报告分析1). 数据库在此时间段非常繁忙。 2). 查看Top 5 Timed Events,出现了Concurrency等待事件latch: library cache** 3). 查看...原创 2018-04-20 16:02:51 · 2135 阅读 · 0 评论 -
Insert 语句对 nologging 与 logging表 在不同场景下的优化
前言前段时间报表数据库上有条insert sql语句,插入的大量数据,执行非常慢,需要对其进行分析优化。分析步骤是在:ARCHIVE与NOARCHIVE模式下进行。测试场景: 分别对表的常规插入,表在append插入,表在append + parallel插入进行性能测试,得出结果。环境准备 数据库版本 基础表 nologging表 logging表...原创 2018-04-23 17:45:10 · 2685 阅读 · 0 评论 -
当执行计划中出现BITMAP CONVERSION TO ROWIDS关键字时,需要注意了。
前言前些天优化了一些耗费buffers较多的SQL,但系统CPU降低的效果不明显,于是又拉了awr报告,查看了SQL ordered by Gets排名前列的SQL。分析SQL代码:select distinct pro5.value as CUSTOMERCODE, to_date('19000101000000', 'yyyymmddhh24mi...原创 2018-04-25 17:26:26 · 4256 阅读 · 0 评论 -
rownum导致sql不能进行谓词推入
背景 案件(13405_RI-再保结算查询导出太慢),造成性能慢的原因是执行以下sql时,每次执行平均需要消耗2秒, 画面上,点击一次导出按钮,就会发起数以百记的调用。SQL执行代码段select * from t_policy_payment_writeoff where policysn = 'PB12345';t_policy_payment_writeo...原创 2018-06-27 15:56:14 · 379 阅读 · 0 评论 -
反连接NOT EXISTS子查询中有or 谓词连接条件SQL优化一例
背景 今天在日常数据库检查中,发现一SQL运行时间特别长,于是抓取出来,进行优化。 优化前: 耗时:503s 返回:0SQL代码SELECT * FROM MM_PAYABLEMONEY_TD P WHERE P.DATATYPE IN ('132', '304', ...原创 2018-07-02 11:02:35 · 2096 阅读 · 0 评论