用直接路径(direct-path)insert提升性能的两种方法
用直接路径(direct-path)
Oracle中start with...connect by prior子句用法.doc
今天发现在oracle中的select语句可以用START WITH...CONNECT BY PRIOR子句实现递归查询,connect by 是结构化查询中用到的,其基本语法是: select ... from tablename start with cond1 connect by cond2 where cond3; 简单说来是将一个树状结构存储在一张表里,比如一个表中存在两个字段: id,parentid那么通...
Oracle 树查询 性能优化纪实(start with, connect by)
在项目中做权限控制时,需要用组织阶层来控制能够访问的数据,比如A组织的人可以看到其下属组织的人员数据,或者只有A组织是B组织上级的时候才有看B组织人员数据的权利。根据需求需要构筑DB的表结构,如下(ORG_RANK)组织ID(PK) 上位组织ID ORG_ID HIGH_ORG_ID根据上面的结构,使用Oracle的树查询语句(s...
Oracle SQL优化之sql tuning advisor(STA)
Oracle SQL优化之sql tuning advisor(STA) SQL优化器SQL Tuning Advisor (STA),是oracle的sql优化补助工具。其实优化sql主要有两个方案,其一是改写sql本身,改写sql需要对sql语法、数据库的执行方式都要有较好地理解。其二就是这个STA,它属于DBMS_SQLTUNE包,它的主要作用是对于sql使用到的表创建...
三种表连接方式 优化总结
4个角度剖析经典连接 NL hashjoin MERGE sort JOIN表的访问次数 NL驱动表访问多少次  ...
【SQL 性能优化】表的三种连接方式
NESTED LOOP:对于被连接的数据子集较小的情况,嵌套循环连接是个较好的选择。在嵌套循环中,内表被外表驱动,外表返回的每一行都要在内表中检索找到与它匹配的行,因此整个查询返回的结果集不能太大(大于1 万不...
oracle -- Hash算法原理
Hash算法原理 对于什么是Hash算法原理?这个问题有点难度,不是很好说清楚,来做一个比喻吧:我们有很多的小猪,每个的体重都不一样,假设体重分布比较平均(我们考虑到公斤级别),我们按照体重来分,划分成100个小猪圈。 然后把每个小猪,按照体重赶进各自的猪圈里,记录档案。 好了,如果我们要找某个小猪怎...
set autotrace的用法和含意及区别
Usage: SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]说明:前三个参数{OFF | ON | TRACE[ONLY]} 里必需选择一个,而且只能选择一个后两个参数[EXP[LAIN]] [STAT[ISTICS]]是可选的,也可以都不选择TRACE[ONLY]的含意是只显示explain和statistic,不显示SQL的结果集,带TRACE[ONLY]的参数的以下的4,5,6最常用的是第4种只要带上off,后面的[EXP[LAIN]] [STAT[ISTICS]]就无效了1:set autotrace on;显示:记录集+explain+statistics2:set autotrace on explain显示:记录集+explain3:set autotrace on statistic显示
Oracle调优总结
Oracle调优总结 Problem Description:1.每个表的结构及主键索引情况2.每个表的count(*)记录是多少3.对于创建索引的列,索引的类型是什么?count(distinct indexcol)的值是多少?4.最后一次对表进行分析是在什么时间,分析后,是否又对相关表做过大的操作5.索引最后一次rebuild,是在什么时间,此后对表的...
一份考验你DBA水平的sql优化文档
大家好! 今天和大家分享下sql优化的资料,这份资料是2年前公司的培训资料,今天拿出来和大家分享,考评! 今天重温这份培训资料,发现漏洞百出,这说明在这2年中我的水平是进步的(:...
使用sql profile固定执行计划
使用sql profile固定执行计划实验10g之前有outlines,10g之后sql profile作为新特性之一出现。如果针对非绑定变量的sql,outlines则力不从心。下面是实验过程--1.准备阶段 SQL> select * from v$version; BANNER ---------------------------------------------------------------- Ora...
SQL PROFILE修改固定执行计划
发给团队的,有需要的可以参照下。下面是原文,懒的编辑了SQL PROFILE的用法示例,下周周会给应用DBA演示下。一般只需要步骤三、四就可以完成执行计划的修改和固定,而outline和baseline则需要N多个步骤。SQL PROFIL...
为Linux版本Oracle 11gR2配置HugePage
HugePage是Oracle在Linux版本下一种性能优化手段。对于共享内存区域(SGA)的数据库系统,Oracle通常都推荐在操作系统层面配置上HugePage,为Oracle实例准备更大的可用共享内存和整块的内存。 本文主要介绍在Oracle 11gR2版本上,进行HugePage配置全过程。记录下来,共需要的朋友待查。 ...
ORACLE SQL Tuning Health-Check(SQLHC)
一条sql语句的性能主要依赖于好的物理结构,准确的系统统计数据,准确的对象统计数据,合理的查询优化器参数,合理的系统参数.这些数据也就是CBO计算的基本参数,SQLHC(文档 ID 1366133.1)正是为用户提供sql的这些数据,来辅助sql调优.特别适合无法在客户环境中调优的情况,SQLHC虽然没有SQLT(文...
3种主要表连接方式对比
1、嵌套循环链接(USE_NL)主要消耗的相关资源:CPU,磁盘I/O特点:在网上看到很多关于这方面的帖子,说小表作为驱动表,其实这种说话不完全正确,其实带条件的大表返回较少行的结果集也可以作为驱动表(外部表)...
通过分析SQL语句的执行计划优化SQL(总结)
通过分析SQL语句的执行计划优化SQL(总结) 做DBA快7年了,中间感悟很多。在DBA的日常工作中,调整个别性能较差的SQL语句时一项富有挑战性的工作。其中的关键在于如何得到SQL语句的执行计划和如何从SQL语句的执行计划中发现问题。总是想将日常经验的点点滴滴总结一下,但是直到最近才下定决心,总共花了3个周末时间,才将其整理成册,便于自己日常工作。不好意思独享,所以将其贴出来。修改日志:2006.02.20:根据网友反馈已做部分修改,但pdf文件没有做修改,修改部分在“如何产生执行计划”关于set autotraceonly的介绍部分第一章、第2章
awr性能问题排查第一篇
对于awr,里面涵盖的内容比较杂,有时候看报告的时候总是不知道该怎么下手。时间长了,可能会有一些阅读习惯或者心得。今天在看大师chris lawson的一篇博文对于awr的一些心得(http://www.oraclemagician.com/white_papers/10awr.pdf ),还是蛮有收获,赶紧按照这个方子来细细品味一番。首先是查看等待事件,这个也是...
关于索引扫描的极速调优实战(第一篇)
一般在生产环境中,如果某个查询中涉及一个大表,走索引扫描是显然是最值得推荐的方式,但是索引扫描有unique index scan, range scan,skip scan, full scan, fast full scan,这些索引扫描看起来好像很繁杂,但是如果掌握得当,却能够在索引扫描的基础上极速提升性能。关于索引扫描的方式,可以参考。http://blog.itpub.net...
和开发人员讨论一个业务需求和简单实现
前几天一个开发的同事来找我咨询一个问题,说是咨询,其实是开发的同事也不是非常清楚里面的逻辑,因为历史系统,历史原因,各种原因吧,所以我也是带着试试看的态度来帮助了这位同事。这位同事知道这个咨询我的是一个存储过程。基本思路是从千万级的表table1中查出结果集,然后在table2,table3,table4都插入数据。这个存...