
Oracle10g 数据库SQL优化
文章平均质量分 81
waterxcfg304
具有10年以上软件开发和数据库开发管理经验,服务的企业涉及:私人小企业、香港上市公司、大型美资企业。擅长MSSQL,MYSQL,ORACLE数据库管理。
展开
-
ORACLE数据库SQL优化--->ORACLE访问数据的方法
目标SQL所需要访问的数据一般存储在表里,而ORACLE访问表中的数据有两种方法:一种是直接访问表,一种是先访问索引,在回表(当然,如果目标SQL所要访问的数据只通过访问相关的索引就可以得到,那么就不需要回表了)。 ORACLE访问表的方法:一种全表扫描,另一种是ROWID扫描。全表扫描是指ORACLE在访问表的时候,会从该表所占用的第一个区(extent)的第一个块(block)开始原创 2014-02-12 16:15:17 · 1286 阅读 · 0 评论 -
用orabm测试oracle服务器的TPS值
用orabm测试oracle服务器的TPS值用orabm测试oracle服务器的TPS值1、orabm简介 Orabm是一个开源的oracle性能测试工具,,包含了一套SQL脚本和几个命令行程序。作者Geoff Ingram,是《High-Performance Oracle: Proven Methods for Achieving Optimum Performance转载 2015-10-27 16:14:53 · 1861 阅读 · 0 评论 -
ORACLE数据库SQL优化--->Oracle里的优化器
对所有的关系型数据库而言,优化器无疑使其中最核心的部分,因为优化器负责解析SQL,而我们又都是通过SQL来访问存储在关系型数据库中的数据的。所有优化器的好坏直接决定该关系型数据库的强弱。 那什么是优化器呢(Optimizer)?优化器是ORACLE数据库中内置的一个核心子系统,你也可以把他理解成是ORACLE数据库中一个核心模块或者一个核心功能组件。优化器的目的是按照一定的判断原创 2014-02-11 16:31:59 · 1850 阅读 · 0 评论 -
Oracle--optimizer_mode
Oracle使用Optimizer_mode参数来控制优化器的偏好,9i常用的几个参数有:first_rows,all_rows,first_rows_N,rule,choose等。而10g少了rule和choose.Oracle 在执行SQL语句时,有两种优化方法:即基于规则的RBO和基于代价的CBO。 在SQL执行的时候,到底采用何种优化方法,就由Oracle参数 optimizer_mo原创 2013-04-02 13:43:45 · 6272 阅读 · 0 评论 -
Oracle里的哈希连接原理
哈希连接(HASH JOIN)是一种两个表在做表连接时主要依靠哈希运算来得到连接结果集的表连接方法。在Oracle 7.3之前,Oracle数据库中的常用表连接方法就只有排序合并连接和嵌套循环连接这两种,但这两种表连接方法都有其明显缺陷。对于排序合并连接,如果两个表在施加了目标SQL中指定的谓词条件(如果有的话)后得到的结果集很大且需要排序的话,则这种情况下的排序合并连接的执行效率一定是很差的转载 2014-05-15 21:28:47 · 1893 阅读 · 0 评论 -
oracle表连接----->哈希连接(Hash Join)
oracle表之间的连接之哈希连接(Hash Join),其特点如下:1,驱动表和被驱动表都是最多只被访问一次。2,哈希连接的表有驱动顺序。3,哈希表连接的表无需要排序,但是他在做连接之前做哈希运算的时候,会用到HASH_AREA_SIZE来创建哈希表。4,哈希连接不适用于的连接条件是:不等于,小于5,哈希连接索引列在表连接中无特殊要求,与单表情况无异。下面我来做个实验来证原创 2014-05-15 14:13:40 · 29551 阅读 · 0 评论 -
oracle表连接----->嵌套循环(Nested Loops Join)
嵌套循环连接(Nested Loops Join)是一种两个表在做表连接时依靠两层嵌套循环(分别为外层循环和内存循环)来得到连接结果集的表连接方法。即外层循环对应的驱动结果集有多少条记录,遍历被驱动表的内层循环就要做多少次,这就是所谓的“嵌套循环”的含义。原创 2014-05-15 13:44:21 · 7906 阅读 · 0 评论 -
oracle表连接------>排序合并连接(Merge Sort Join)
oracle表之间的连接之排序合并连接(Merge Sort Join),其特点如下:1,驱动表和被驱动表都是最多只被访问一次。2,排序合并连接的表无驱动顺序。3,排序合并连接的表需要排序,用到SORT_AREA_SIZE。4,排序合并连接不适用于的连接条件是:不等于其中大于>,小于5,排序合并连接,如果有索引就可以排除排序。下面我来做个实验来证实如上的结论:原创 2014-05-15 14:23:54 · 9354 阅读 · 0 评论 -
ORACLE数据库SQL优化--->Oracle表连接方法
在ORACLE数据库中,两个表之间的表连接方法有合并排序连接,嵌套循环连接,哈希连接和笛卡尔连接这四种,这四种表连接方法各有优缺点。下面分别来简单介绍下。原创 2014-02-13 14:57:47 · 2285 阅读 · 2 评论 -
ORACLE数据库测试数据插入速度
一,没有优化的速度:Executed in 69.436 secondsdrop table t purge;create table t(x int);/*清空共享池,注意在生产环境中千万不能做这步操作*/alter system flush shared_pool;create or replace procedure proc1as begin for i原创 2014-04-21 16:23:11 · 22415 阅读 · 1 评论 -
ORACLE数据库SQL优化--->如何执行计划的执行顺序
建议安装(10g即以上版本上)xplan package,XPALN包其实是对DBMS_XPLAN包的封装,使用XPLAN包就可以很清晰的看到执行计划的执行顺序。安装很简单:其中xplan.sql_.txt可以到如下的网站下载:http://www.dbsnake.net/wp-content/uploads/2012/08/xplan.sql_.txt [oracle@vmoel原创 2014-02-18 14:49:24 · 3407 阅读 · 0 评论 -
ORACLE数据库SQL优化--->如何得到真实的执行计划
在ORACLE数据库里通常可以使用如下的四种方法来得到目标SQL的执行计划:1,EXPLAIN PLAN命令2,DBMS_XPLAN包3,SQLPLUS中的AUTOTRACE开关4,10046事件除了第四种方法外,其他的三种方法得到的执行计划都有可能不准确。在ORACLE数据库中判断得到的执行计划是否准确,就是看目标SQL是否被真正的执行,真正执行过的SQL所对应的执行计划就是原创 2014-02-18 13:30:34 · 7401 阅读 · 0 评论 -
ORACLE数据库SQL优化--->Oracle表连接类型
1,表连接顺序原创 2014-02-13 11:40:08 · 2908 阅读 · 0 评论 -
ORACLE数据库SQL优化--->优化器基础知识
在ORACLE数据库中,优化器的模式是由参数optimizer_mode的值来决定的,optimizer_mode的值可能是RULE,CHOOSE,FIRST_ROWS_n(n=1,10,100,1000),FIRST_ROWS或ALL_ROWS。 OPTIMIZER_MODE的各个可能值的含义如下:原创 2014-02-12 14:58:44 · 1577 阅读 · 0 评论 -
ORACLE数据库SQL优化--->基于成本的优化器
Oracle有两种优化器:RBO和CBO。 RBO的最大的问题在于它是靠硬编码在ORACLE数据库代码中的一系列规定的规则来决定目标SQL的执行计划的,而并没有考虑目标SQL中所涉及的对象的时间数据量,实际数据分布情况,这样一旦规定规则并不适用于该SQL中所涉及的实际对象时,RBO根据规定规则产生的执行计划就很可能不是当前情况下的最优执行计划了。原创 2014-02-12 14:10:06 · 3105 阅读 · 0 评论 -
Oracle SQL Profile使用
SELECT Q.RECIPIENT_ID, Q.DESCR,P.* FROM temp20160912 P, PS_RECIPIENT Q WHERE 1 =1 AND P.D_EFFDT =原创 2016-09-13 10:12:53 · 2673 阅读 · 0 评论