oracle
Variab
人生有三宝:终身运动,终身学习,终身反醒。
展开
-
ORACLE强制索引
用了强制索引最好自己看一眼执行计划原创 2017-11-22 11:13:10 · 678 阅读 · 0 评论 -
ORACLE水位线HWM
参考http://www.cnblogs.com/husam/p/6604437.html很详细转载 2017-11-24 11:06:41 · 152 阅读 · 0 评论 -
记录一个TRUNC函数的坑
不知道是我对TRUNC函数理解不够还是怎么的,记录一下原创 2017-12-05 17:34:29 · 1565 阅读 · 3 评论 -
连接方式
排序合并连接(sort merge join)访问次数:两张表都只会访问0次或1次。驱动表是否有顺序:无。是否要排序:是。应用场景:当结果集已经排过序。排序合并连接原理:如果A表的数据为(2,1,4,5,2),B表的数据为(2,2,1,3,1) ,首先将A表和B表全扫描后排序,如下:A B1 12 12 2转载 2017-12-08 11:43:48 · 239 阅读 · 0 评论 -
MERGE JOIN CARTESIAN
笛卡尔积合并连接,两个结果集之间做merge join,并且还是笛卡尔积的合并连接.说起来可能很绕.我们先看合并连接的定义:通常称为排序合并连接(Sort Merge Join),因为这种连接的要求是:两个结果集是排序的,排序字段是两个结果集的连接字段.排序合并连接(Sort Merge Join)的执行顺序如下:1.根据sql文本的where条件,对目标表T1进行访问,对过滤转载 2017-12-11 10:39:52 · 972 阅读 · 0 评论 -
HINT
Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担。但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比。此时就需要DBA进行人为的干预,告诉优化器使用我们指定的存取路径或连接类型生成执行计划,从 而使语句高效的运行。例如,如果我们认为对于一个特定的语句,执行全表扫描要比执行索引扫描更有效,则我们就可以指示优化器使用全转载 2017-12-11 11:30:02 · 435 阅读 · 0 评论 -
集群因子
集群因子创建索引的时候会把索引列的数据拷贝到索引段排序存放,但是表上的数据不一定是按照索引列排序存放的,在做索引扫描的时候,相邻的索引值对应的数据行可能不在同一个数据块中,这样就会产生额外的IO,集群因子就是计算索引值相邻但对应的数据行不在同一个数据块的度量值,最佳的性能是集群因子的数量等于数据表占用的数据块数量,最差的就是集群因子的值接近数据行的值。举个简单的例子,新华字典上转载 2018-01-04 17:50:29 · 541 阅读 · 0 评论 -
组合索引
关于组合索引1.一个表建立多少个索引比较合适?比如说不大于5个 这个没有定论,楼主要综合查询效率和dml效率自己确定,索引可以加快select的查询速度,但也会降低delete,insert和update等dml语句的执行速度。2.联合索引比单索引的效率高么? 如果联合索引中的多个字段都在where谓词中出现了,则联合索引效率比单列索引高,因为通过转载 2018-01-09 16:22:02 · 448 阅读 · 0 评论 -
ffs&fs
当select和where中出现的列都存在索引是发生index full scan与index fast full scan的前提index fast full scan使用多块读的方式读取索引块,产生db file scattered reads 事件,读取时高效,但为无序读取index full scan使用单块读方式有序读取索引块,产生db file sequential reads转载 2018-01-10 15:03:41 · 340 阅读 · 0 评论 -
oracle索引
简介1.说明 1)索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引。在数据库中索引可以减少数据库程序查询结果时需要读取的数据量,类似于在书籍中我们利用索引可以不用翻阅整本书即可找到想要的信息。 2)索引是建立在表上的可选对象;索引的关键在于通过一组排序后的索引键来取代默认的全表扫描检索方式,从而提高检索效率 3)索引在逻辑上和物理上都与相关的转载 2017-11-22 09:13:32 · 264 阅读 · 0 评论 -
oracle 索引失效原因及解决方法
oracle 索引失效原因及解决方法2010年11月26日 星期五 17:10 一、以下的方法会引起索引失效1,2,单独的>,3,like "%_" 百分号在前.4,表没分析.5,单独引用复合索引里非第一位置的索引列.6,字符型字段为数字时在where条件里不添加引号.7,对索引列进行运算.需要建立函数索引.8,not in ,not转载 2017-11-22 11:05:19 · 507 阅读 · 0 评论 -
nologging
1、ORACLE数据库会对产生改变的操作记录REDO,比如DDL语句、DML语句,这些操作首先会放在redo buffer中,然后由LGER进程根据触发条件写到联机日志文件,如果数据库开启归档的话,还要在日志切换的时候归档。在这样一个完整的链条上的每一个环节,都可能会成为性能的瓶颈,所以需要引起DBA和数据库应用人员的注意。对于我们来说,最好的调优方式就是不产生REDO或者尽量少的产生REDO。原创 2017-11-24 10:50:17 · 1763 阅读 · 0 评论