- 浏览: 888369 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
zzuliuli:
很实用,一直关注
mysql的执行计划 -
rxin2009:
你好,最近在解决redis数据同步的问题,找到了tedis,但 ...
taobao/tedis的redis集群 -
zhangping2056:
楼主接下来要考虑页面静态化与细节上面的东西了
Nginx与Redis解决高并发问题 -
XieFuQ:
Tomcat的重启shell脚本 -
jovinlee:
jovinlee 写道 jov ...
Tomcat的重启shell脚本
Bad sql
SELECT T3.CONFLICT_ID,
T3.LAST_UPD,
T3.CREATED,
T3.LAST_UPD_BY,
T3.CREATED_BY,
T3.MODIFICATION_NUM,
T3.ROW_ID,
T3.ATTR_04,
T3.ATTR_03,
T2.VAL,
T3.ATTR_01,
T3.ATTR_02,
T1.NAME,
T2.VAL1
FROM user.S_ORG_EXT T1, user.CX_LOOKUP T2, user.CX_POS_LOG_INFOT3
WHERE T3.ATTR_02 = T1.PAR_ROW_ID
AND T3.ATTR_01 = T2.NAME1
AND T2.TYPE = 'PROVIDER'
AND (T3.TYPE = 'INFO')
AND (T3.ATTR_04 = :1 AND T3.ATTR_02 = :2)
原因分析:对CX_POS_LOG_INFO表全表扫描,其实统计信息也不准确,表的大小应该500M左右了
--------------------------------------------------------------------------------
| Operation | PHV/Object Name | Rows | Bytes| Cost |
--------------------------------------------------------------------------------
|SELECT STATEMENT |----- 1762745057 ----| | | 3655 |
|NESTED LOOPS | | 1 | 1K| 3655 |
| NESTED LOOPS | | 1 | 109 | 2 |
| TABLE ACCESS BY INDEX ROWID |S_ORG_EXT | 1 | 25 | 1 |
| INDEX UNIQUE SCAN |S_ORG_EXT_U3 | 1 | | 2 |
| TABLE ACCESS BY INDEX ROWID |CX_LOOKUP | 1 | 84 | 1 |
| INDEX RANGE SCAN |CX_LOOKUP_U1 | 1 | | 2 |
| TABLE ACCESS FULL |CX_POS_LOG_INFO | 1 | 1K| 3653 |
--------------------------------------------------------------------------------
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
71207 consistent gets
71187 physical reads
0 redo size
1131 bytes sent via SQL*Net to client
460 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
0 rows processed
解决思路:
手工添加组合索引,使查询走组合索引,查询从65秒下降到1秒,逻辑读从71207(556M)下降到21
create indexSIEBEL.IDX_CX_POS_LOG_INFO_U1 on SIEBEL.CX_POS_LOG_INFO (ATTR_02, ATTR_04)
tablespace SIEB_IDX
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=3 Card=1 Bytes=1278)
1 0 TABLE ACCESS (BY INDEX ROWID)OF 'CX_POS_LOG_INFO' (Cost=1 Card=1 Bytes=1169)
2 1 NESTED LOOPS (Cost=3 Card=1Bytes=1278)
3 2 NESTED LOOPS (Cost=2Card=1 Bytes=109)
4 3 TABLE ACCESS (BY INDEXROWID) OF 'S_ORG_EXT' (Cost=1 Card=1Bytes=25)
5 4 INDEX (UNIQUE SCAN) OF'S_ORG_EXT_U3' (UNIQUE) (Cost=2 Card=1)
6 3 TABLE ACCESS (BY INDEXROWID) OF 'CX_LOOKUP' (Cost=1 Card=1Bytes=84)
7 6 INDEX (RANGE SCAN) OF'CX_LOOKUP_U1' (UNIQUE) (Cost=2 Card=1)
8 2 INDEX (RANGE SCAN) OF'IDX_CX_POS_LOG_INFO_U1' (NON-UNIQUE)(Cost=1 Card=93)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
18 consistent gets
0 physical reads
0 redo size
1448 bytes sent via SQL*Net to client
655 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
发表评论
-
TCC 分布式事务
2019-09-11 09:30 0https://www.cnblogs.com/jajia ... -
终于明白为什么要“分库分表”了!
2019-09-11 09:28 0例如:单表中出现了,动辄百万甚至千万级别的数据。“分表分库” ... -
数据同步利器-otter的搭建使用说明
2019-09-11 09:26 0本文链接:https://blog.cs ... -
Oracle insert大量数据经验之谈(转)
2017-06-07 14:53 964在很多时候,我们会需要对一个表进行插入大量的数据,并且希望 ... -
Oracle的执行计划
2017-03-17 17:04 0Oracle的执行计划 得到执行计划的方 ... -
oracle跨库查询dblink的用法
2016-01-15 14:02 1125http://www.cnblogs.com/ningvsb ... -
Oracle同义词创建及其作用
2016-01-15 14:01 943Oracle的同义词(synonyms)从字面上理解就是 ... -
Windows 64位 安装Oracle instantclient 官方绿色版和PL/SQL Developer 总结
2015-12-24 15:40 6435操作系统:Windows 7 64位旗舰 要求,安装PL/ ... -
oracle数据中记录被另一个用户锁住
2015-02-03 18:58 2685今天,运行Java后台程序,设置了断点,每到执行SQL语句 ... -
Oracle中唯一约束和唯一索引,PK,FK,UK.CK
2014-12-10 09:52 3772PK 主键 Primary Key :http://baik ... -
索引失效系列——隐式类型转换
2013-05-30 16:57 1460索引是我们进行优化的一种重要方式。实际工作中,一个简单的索引 ... -
索引失效系列——说说is null
2013-05-30 16:54 1834索引是我们进行优化的一种重要方式。实际工作中,一个简单的索引 ... -
查询语句中select from where group by having order by的执行顺序
2013-05-30 09:19 1671查询语句中select from where group b ... -
oracle 锁
2012-09-05 22:38 894这个月的主要工作任务 ... -
sql中exist与in 的区别
2012-08-24 09:51 961sql中exist与in 的区别2007年03月02日 星期五 ... -
ORACLE-SQL优化
2012-08-15 16:20 1258Oracle的优化器共有两种 ... -
oracle sql优化案例2(RBO下调整表连接的顺序) .
2012-08-15 16:18 1093发现问题: 通过statspack(statspack的bu ... -
脏读,不可重复读,幻读 .
2012-08-14 11:25 9461. 脏读 :脏读就是指当一个事务正在访问数据,并且对数据进行 ... -
%type与%rowtype区别
2012-08-07 15:23 1022%TYPE:属性的一种方式是在变量声明中使用。%TYPE是用于 ... -
oracle索引
2012-08-06 14:44 1014在OLTP 类型的数据库中经常更新的表INDEX ...
相关推荐
在Oracle数据库中,SQL语句的编写和优化是数据库管理员和开发人员的重要技能。这份"ORACLE数据库SQL语句编写优化总结"文档很可能是对如何提高SQL查询性能、减少资源消耗以及提升系统整体效率的详细阐述。以下是根据...
第1章 全局在胸——用工具对SQL整体优化 1 1.1 都有哪些性能工具 1 1.1.1 不同调优场景分析 2 1.1.2 不同场景对应工具 2 1.2 整体性能工具的要点 4 1.2.1 五大性能报告的获取 5 1.2.2 五大报告关注的要点 10 ...
本文详细介绍了 Oracle SQL 中的一些高级概念和技术,包括子查询、分组、连接、数据操纵语言 (DML)、事务处理、视图、索引优化以及 PL/SQL 和数据库安全等。通过这些实践案例的学习,相信读者已经掌握了更多实用的...
- **解决方案**:创建一个组合索引`IDX_CUSTOMER_DATE`,包含`customer_id`和`order_date`两个字段,这样查询可以直接从索引中获取所需数据,而无需访问表本身。 2. **案例二:利用物化视图加速报表生成** - **...
文档通过案例解释了单列索引和组合索引的作用,并指出在创建复合索引时要注意列的排列顺序和数量限制。 2. 返回更少的数据。通过优化SQL语句,减少返回结果集的大小。 3. 减少交互次数。例如通过批量处理数据减少...
作者龚维荣、周顺平、万波在文章中结合自己的实际工作经验,对Oracle数据库基于索引的SQL语句优化方法进行了初步探讨,提出了建立必要索引的建议和方法,并分享了一些简单实用的优化技巧。这些技巧如果能够在数据库...
《Mastering Oracle SQL and SQL Plus》这本书为读者提供了全面而深入的学习资源,涵盖了Oracle SQL的基础知识、高级特性以及SQL Plus的使用技巧。通过本书的学习,不仅可以掌握Oracle SQL的基本操作,还能深入了解...
通过阅读“精通Oracle.10g.Pl.SQL编程”这本书,读者将不仅学习到上述知识点,还能深入探讨实际案例,理解如何在实际项目中应用这些知识。这本书对于想要提升数据库开发和管理能力的人来说是一本宝贵的资源。
10. **索引优化**:理解PL/SQL中的索引使用,以及如何通过索引提高查询性能。 11. **并发控制**:处理多用户环境下的并发问题,如锁定机制(ROWLOCK, TABLELOCK)和死锁检测。 12. **错误处理和调试**:掌握PL/SQL...
例如,在WHERE子句中使用了多个字段时,考虑创建这些字段的组合索引。 - **避免索引失效**:确保查询条件与索引字段相匹配,避免使用函数或表达式对索引字段进行操作。 #### 三、简化查询结构 - **减少使用IN或OR**...
在这个案例中,"SQL.CHM"很可能是一个关于SQL的完整指南,涵盖了从基础到高级的各种概念,尤其可能包括在Oracle数据库中的应用。 下面,我们将深入探讨一些可能包含在"SQL.CHM"中的关键SQL知识点,以及它们在Oracle...
1. **SQL性能优化**:深入探讨SQL查询的执行计划、索引使用策略以及如何编写高效的SQL语句,这对于提高应用程序的响应速度至关重要。 2. **复杂查询技巧**:介绍如何使用子查询、连接(join)、集合操作(如union、...
- **基于成本的优化器(CBO)**:现代版本的Oracle主要使用的优化技术,它根据统计数据计算出每个可能的执行路径的成本,并选择成本最低的执行计划。 #### 四、Oracle的执行计划访问路径 **4.1 执行计划的获取** ...
他在本书中不仅分享了自己的专业见解,还通过实际案例帮助读者更好地理解和应用Oracle SQL的各种功能。 #### 三、内容概览 ##### 1. **基础概念** - **Lexical Conventions**(词法规则):这部分介绍了Oracle ...
### Oracle数据库优化关键知识点 #### 一、优化五个核心方面 1. **去掉不必要的大型表的全表扫描** - 大型表的全表扫描会导致大量的I/O操作,严重影响性能。对于这类表,应该优先考虑使用索引或者分区策略来避免...
1. 查询优化:学习如何编写高效的SQL查询,包括避免全表扫描、使用索引等策略。 2. 性能监控:了解如何分析和调整SQL查询性能,提升数据库系统的整体效率。 以上只是“SQL语句电子书”可能涉及的一些关键知识点,...
Oracle 数据库中的表连接是构建复杂 SQL 查询的基础,它允许从多个表中组合数据。连接方法的选择直接影响到查询性能,因此了解各种连接类型及其适用场景至关重要。本文将深入探讨 Oracle 中的三种主要连接方式:嵌套...