这节将介绍各种索引扫描方式,在了解了各种索引扫描方式的特点后,你就可以判断你的执行计划中使用的扫描方式是否正确,并可以针对获取的信息作出改进。
索引唯一扫描
在下面的场景中使用相等条件时,数据库使用索引唯一扫描。
1)查询条件中包含唯一索引中的所有列时;
2)查询条件使用主键约束列时。
下面是一个实际的例子,在表historyalarm中创建如下唯一索引:
create uniqu...
分类:
数据库 时间:
2014-09-11 11:11:44
阅读次数:
277
MySQL执行计划解读Explain语法EXPLAIN SELECT ……变体:1. EXPLAIN EXTENDED SELECT ……将执行计划“反编译”成SELECT语句,运行SHOW WARNINGS 可得到被MySQL优化器优化后的查询语句 2. EXPLAIN PARTITIONS S....
分类:
数据库 时间:
2014-09-05 12:42:21
阅读次数:
305
These two terms in the Predicate Information section indicate when the data source is reduced. Simply, access means only retrieve those records meetin...
分类:
数据库 时间:
2014-09-03 19:37:37
阅读次数:
351
一朋友使用autotrace查看数据库执行计划发现结果如下,Statistics中很多信息为0,这个肯定是不正常现象,什么都可以为0,consistent gets也不可能为0.SQL> set autot onSQL> select count(*) from RACV_DATA.PARTY_DU...
分类:
其他好文 时间:
2014-09-01 19:25:13
阅读次数:
204
近期有朋友对于单个表上的index各种情况比较模糊,这里对于单个表上,单个index出现的大多数情况进行了总结性测试,给出了测试结果,至于为什么出现这样的试验结果未做过多解释,给读者留下思考的空间.本篇文章仅仅是为了测试hint对index的影响,而不是说明走各种index方式的好坏.参考:INDE...
分类:
其他好文 时间:
2014-09-01 19:23:23
阅读次数:
287
SQL的执行计划实际代表了目标SQL在Oracle数据库内部的具体执行步骤,作为调优,只有知道了优化器选择的执行计划是否为当前情形下最优的执行计划,才能够知道下一步往什么方向。
执行计划的定义:执行目标SQL的所有步骤的组合。
我们首先列出查看执行计划的一些常用方法:
1.
explain plan命令
PL/SQL Developer中通过快捷键F5就可以查看目标SQ...
分类:
数据库 时间:
2014-08-30 23:10:50
阅读次数:
462
要了解索引访问方法,首先要知道索引的结构。1.表和索引的结构页页是sql server存储数据的基本单位,大小为8kb,可以存储表数据、索引数据、执行计划数据、分配位图、可用空间信息。页是sql server可以读写的最小I/O单位。即便是读取一行数据,它也要把整个页加载到缓存并从缓存中读取数据。区...
分类:
其他好文 时间:
2014-08-30 02:23:10
阅读次数:
275
一创建表createtablett1(idintprimarykey,c1INT);createtablett2(idintprimarykey,c2INT);insertintott1values(1,1),(2,2),(3,3),(4,4);insertintott2values(1,2),(2,2);二执行计划与问题mysql>explainEXTENDEDSELECTtt1.c1,(SELECTtt2.c2FROMtt2WHEREc2=10)FROMtt1,tt2;+--..
分类:
数据库 时间:
2014-08-29 02:59:17
阅读次数:
183
一建表和现象的过程如下CREATETABLEt1(id1INT,a1INT,b1INT,PRIMARYKEY(id1));CREATETABLEt3(id3INTUNIQUE,a3INT,b3INT);INSERTINTOt1VALUES(1,1,NULL);INSERTINTOt3VALUES(1,1,NULL);mysql>select*from(select*fromt1whereid1=(selectid3fromt3whereid3=1))t;+-----+------+..
分类:
数据库 时间:
2014-08-29 02:59:07
阅读次数:
273
测试环境模拟:
SQL> drop table t_col_type purge;
create table t_col_type(id varchar2(20),col2 varchar2(20),col3 varchar2(20));
insert into t_col_type select rownum,'abc','efg' from dual connect by level...
分类:
其他好文 时间:
2014-08-27 23:28:28
阅读次数:
331