Oracle表连接之哈希连接
Oracle Hash join 是一种非常高效的join 算法,主要以CPU(hash计算)和内存空间(创建hash table)为代价获得最大的效率。Hash join一般用于大表和小表之间的连接,我们将小表构建到内存中,称为Hash cluster,大表称为probe表。 当两个表做hash join时,oracle会选择一个表作为驱动表,先根据过滤条件排除不必...
Oracle 11g RAC SCAN ip的原理及配置
介绍Oracle 11g RAC SCAN ip的原理及配置
一个执行计划异常变更的案例 - 正传
之前的几篇文章: 《一个执行计划异常变更的案例 - 前传》 《一个执行计划异常变更的案例 - 外传之绑定变量窥探》 《一个执行计划异常变更的案例 - 外传之查看绑定变量值的几种方法》 《一个执行计划异常变更的案例 - 外传之rolling invalidation》 《一个执行计划异常变更的案例 - 外传之聚簇因子(Clusteri...
一个执行计划异常变更的案例 - 外传之SQL Profile(上)
之前的几篇文章: 《一个执行计划异常变更的案例 - 前传》 《一个执行计划异常变更的案例 - 外传之绑定变量窥探》 《一个执行计划异常变更的案例 - 外传之查看绑定变量值的几种方法》 《一个执行计划异常变更的案例 - 外传之rolling invalidation》 《一个执行计划异常变更的案例 - 外传之聚簇因子(Clusteri...
一个执行计划异常变更的案例 - 外传之直方图
今天单位值班,有一些时间可以继续完成这篇连载文章。首先祝所有朋友新年快乐!感谢你们在这一年当中对我文章的关注和指点,来年我们共同继续努力! 《一个执行计划异常变更的案例 - 前传》 《一个执行计划异常变更的案例 - 外传之查看绑定变量值的几种方法》 《一个执行计划异常变更的案例 - 外传之聚簇...
一个执行计划异常变更的案例 - 外传之ASH
之前的几篇文章: 《一个执行计划异常变更的案例 - 前传》 《一个执行计划异常变更的案例 - 外传之绑定变量窥探》 《一个执行计划异常变更的案例 - 外传之查看绑定变量值的几种方法》 《一个执行计划异常变更的案例 - 外传之rolling invalidation》 《一个执行计划异常变更的案例 - 外传之聚簇因子(Clusteri...
一个执行计划异常变更的案例 - 外传之SQL AWR
之前的几篇文章: 《一个执行计划异常变更的案例 - 前传》 《一个执行计划异常变更的案例 - 外传之绑定变量窥探》 《一个执行计划异常变更的案例 - 外传之查看绑定变量值的几种方法》 《一个执行计划异常变更的案例 - 外传之rolling invalidation》 《一个执行计划异常变更的案例 - 外传之聚簇因子(Clusteri...
一个执行计划异常变更的案例 - 外传之AWR
之前的几篇文章: 《一个执行计划异常变更的案例 - 前传》 《一个执行计划异常变更的案例 - 外传之绑定变量窥探》 《一个执行计划异常变更的案例 - 外传之查看绑定变量值的几种方法》 《一个执行计划异常变更的案例 - 外传之rolling invalidation》 《一个执行计划异常变更的案例 - 外传之聚簇因子(Clusteri...
一个执行计划异常变更的案例 - 外传之查询执行计划的几种方法
之前的几篇文章: 《一个执行计划异常变更的案例 - 前传》《一个执行计划异常变更的案例 - 外传之绑定变量窥探》 《一个执行计划异常变更的案例 - 外传之查看绑定变量值的几种方法》 《一个执行计划异常变更的案例 - 外传之rolling invalidation》《一个执行计划异常变更的案例 - 外传之聚簇因...
一个执行计划异常变更的案例 - 外传之rolling invalidation
之前的几篇文章: 《一个执行计划异常变更的案例 - 前传》 《一个执行计划异常变更的案例 - 外传之绑定变量窥探》 《一个执行计划异常变更的案例 - 外传之查看绑定变量值的几种方法》再抛一下,通过V$SQL_SHARED_CURSOR视图可以查看游标失效的原因,对比这两个cursor,不同之一就是这个ROLL_...
一个执行计划异常变更的案例 - 外传之查看绑定变量值的几种方法
这篇外传之前有这么几篇文章: 《一个执行计划异常变更的案例 - 前传》 《一个执行计划异常变更的案例 - 外传之绑定变量窥探》上一篇文章介绍了绑定变量以及11g之前绑定变量窥探的影响,这篇文章会介绍几种查看绑定变量值的方法。上篇文章我们说了,绑定变量实际是一些占位符,可以让仅查询条件不...
一个执行计划异常变更的案例 - 外传之绑定变量窥探
http://blog.itpub.net/7192724/viewspace-2130990/),介绍了一次执行计划异常变更的案例现象,这两天经过运行同事,以及罗大师的介绍,基本了解了其中的原因和处理方法,这个案例其实比较典型,涉及的知识点很多,有数据库新特性,有SQL相关的,还有应用数据质量问题,对于大师来说,是信手拈来的一次问题排查和处理,但...
一个执行计划异常变更的案例 - 前传
今天快下班的时候,几位兄弟来聊一个问题,大致是昨天应用使用的数据库突然出现性能问题,DBA发现有一些delete语句执行时间骤长,消耗大量系统资源,导致应用响应时间变长积Q。目前掌握的信息如下: (1) 应用已经很久未做过更新上线了。 (2) 据开发人员反馈,从之前的应用日志看,未出现处理时间逐步变长的现...
Sql优化(二十二) 自动调优工具:sql tuning advisor和sql profile介绍
Sql优化是有一定难度的工作,需要dba具有扎实的知识和较丰富的经验。在oracle10g以后,引入了一些自动调优技术,包括sql tuning advisor、sql access advisor、ADDM等,不需要了解JOIN的类型、次序,也不需了解优化器,新手也能用这些工具进行一些优化工作。随着自动管理、自动监控技术的发展,今后dba这一职业是否会消失呢?[@more@]本篇介绍如何用sql tuning advisor来创建sql profile对sql进行调优。(一) Sql tuning advisorSql tuning advisor可以在enterprise manager图形界面中调用,也可通过过程包调用。使用方法见后面的例子。以下
Sql优化(二十) 绑定变量用法、适用场合
在Sql优化(六)中,我们讨论过使用绑定变量的重要性:如果不使用绑定变量而使用常量,会导致大量硬解析。由于硬解析的种种危害,tom认为不使用绑定变量往往是影响oracle性能和扩展性的最大问题一、 错误写法和正确...
Sql优化(十九) 调优工具(2)sql_trace
(一) Sql_trace概述上篇介绍的set autotrace是对单句sql逐句进行调优。本节介绍应用跟踪工具。如果运行一段ORACLE程序,想要知道执行了哪些sql,其中哪些sql耗时多,是否走索引等信息,可以用sql_trace来跟踪session...
Sql优化(十八) 调优工具(1)set autotrace和excute plan table
我们介绍一些常用的sql调优工具。sql调优工具有很多,大同小异,有些图形工具很好用。但Dba了解基本工具也很重要,一方面便于理解基本原理,另一方面你总不好意思让客户先安装enterprise manager之类的工具先吧。也...
Sql优化(十七) 常用开发语言中的数组设置
上篇介绍了sqlplus的arraysize和plsql中bulk collect技术对性能的影响,在PLSQL、oci、java、proc等专业开发语言中都有设置数组访问的方法,本篇仅简单介绍,具体请看oracle应用开发文档。一.PLSQL中的bulk binding...
Sql优化(十六) 使用数组技术提升性能
客户端Arraysize的设置实际上可以理解为设置数组的大小来保存sql调用的返回值。设置适当的arraysize有几个好处:1. 减少读data block的次数,也就是consistent gets的次数。假设一个block有n行,如果每次取一行,则...
Sql优化(十四)分布式环境中的优化(2)选择合适的驱动节点(driving site hint)
在分布式环境中,sql访问多个数据库中的表,优化器需要选择一个运算节点,将其他节点的数据传送到运算节点再执行sql。由于本地数据库无法知道远程数据库表的统计信息,因此会采用假设,例如假设远程表的记录数为100...