批量更新总结
最近遇到一个这么一个业务:每晚根据另一个系统上报的数据(表 t_taemployee ,100W左右数据),更新正式系统里面对应名单(表tatable, 2000W左右数据)的状态等信息,基于商业原因,这里的表名及字段名都已做处理,分别采用别...
批量更新数据方法比较测试
很多情况下,我们会遇到大数据量的批量更新要求,下面,我就来按照rowid的方式(这应该是最快的方法),来比较几种处理方式之间的性能差异,由于机器性能(PC机)及时间原因,这里只准备了460W条数据,比较各种方案...
Oracle 中bind peeking的处理
对于Oracle10g之前的版本,使用绑定变量的缺点就是容易产出bind peeking,但出现这种情况时,最好把使用绑定变量的SQL语句修改为硬解析的方式。 对于问题系统的临时解决方案,参考老白的处理办法:alter sys...
'PLAN_TABLE' is old version
在使用set autotrace 或者explain plan for 的时候,对于生成的执行计划,经常发现有以下的提示:Note----- - 'PLAN_TABLE' is old version出现以上提示的原因是曾经使用toad的执行计划分析过,所以执...
解析Oracle执行计划的结果
对于得到的SQL执行计划,一般如下:执行计划------------------------------------------------------------------------------------------------------------------------------------------| Id | Opera...
跳跃式索引(Skip Scan Index)的浅析
在Oracle9i中,有一个新的特性:跳跃式索引(Skip Scan Index)。当表有一个复合索引,而在查询中有除了索引中第一列的其他列作为条件,并且优化器模式为CBO,这时候查询计划就有可能使用到SS。此外,还可以通过使用...
(转)Index Rebuild Online 过程(9i)完整版
昨天晚上洗澡时新想到一个可以有效测试index rebuild online的方式, 也就是同时使用10046与10704 的trace event再配合lock阻塞的机制来测试index rebuild online的过程. 测试的过程如下.view source print?...
(转)Oracle为什么不使用我的索引?
为什么Oracle不使用我的索引?by Jonathan Lewis标题的这个问题可能是在Metalink论坛与Usenet新闻组出现的最频繁的问题了.这篇文章使用一个测试用例(可以在你自己的系统来重现的)来演示基于成本的优化器的基本工作原...
Oracle Parallel Execution
关于Oracle 的并行执行,Oracle 官方文档有详细的说明:http://download.oracle.com/docs/cd/E11882_01/server.112/e16541/parallel001.htm#CACEEBJJ 一、并行(Parallel)和OLAP系统并行的实现机制是:首...
Oracle之绑定变量
一、绑定变量 bind variable: A variable in a SQL statement that must be replaced with a valid value, or the address of a value, in order for the statement to successfully exe...
Oracle SQL的硬解析和软解析
我们都知道在Oracle中,每条SQL语句在执行之前都需要经过解析,这里面又分为软解析和硬解析。在Oracle中存在两种类型的SQL语句,一类为 DDL语句(数据定义语言,例如CREATE,DROP,ALTER),他...
flush shared pool& buffer cache
CommandsFlushing the shared poolFlushing the buffer cacheForcing a checkpointForcing a logfile switchFlushing the shared poolTo flush the shared pool use: ALTER SYSTEM FLUSH SHARED_POO...
dbms_stats.gather_table_stats与analyze table 的区别[转贴]
Analyze StatementThe ANALYZE statement can be used to gather statistics for a specific table, index or cluster. The statistics can be computed exactly, or estimated based on a specific number of rows,...
(转)ORACLE索引与高性能SQL介绍
什么是索引 索引是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据; Oracle存储索引的数据结构是B*树,位图索引也是如此,只不过是叶子节点不同B*数索引; 索引由根节点、分支...
通过dbms_profiler分析脚本执行效率
定位存储过程中哪一段代码费时,一直是个麻烦事情,DBMS_PROFILER包的出现可以解决这个难题,它甚至可以定位每行代码的运行时间! 首先,以dba身份登录命令窗口,执行profloa...
BITMAP CONVERSION TO ROWIDS
今天无意中看到了一个SQL语句的执行计划,出现了BITMAP CONVERSION TO ROWIDS,感觉甚是奇怪,这个表上明明没有bitmap index,怎么还会出现BITMAP字样,而且还是很陌生的BITMAP CONVERSION TO ROWIDS,把执行计划贴...
(转)ORACLE BITMAP INDEX
ORACLE的bitmap索引,我们用的很少。在我们的常理认识当中,我们用的最多就是类似性别,类型这种属性的字段,因为他们字段的种类很少。其实 BITMAP还是有很多优势以及一些特性的。 首先在传统的INDEX里,我们在索...
(转)Oracle Hint的用法
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法:1. /*+ALL_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.例如:SELECT /*+ALL+_ROWS*...
索引研究(一)
今天通过v$sql_plan、v$sqlarea等视图,定位存在Table Access Full的脚本如下:select d.id, d.caption from t_catalog d where parentid = 77 and isvalid = 1;首先想得的就是这个条件字段上没索引,...
SQL优化说明文档(1)
1.Sql执行三个主要阶段Ø Parse (分析阶段)- 在内存(shared pool) 中寻找语句- 检查语法,检查语义,权限- 合并View,SubQuery - ...