要了解索引访问方法,首先要知道索引的结构。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
index_ss hint 使用的执行计划变化对比
其中 buffer 代表:当前操作中发生的内存读次数,包含一致性读和当前读
虽然 emp 表记录数不多,但是buffer 读内存的次数差别还是有点大的
SQL> select job from emp where ename='SMITH';
JOB
------------------
CLERK
SQL> se...
分类:
其他好文 时间:
2014-08-27 22:03:58
阅读次数:
191
mysql5.6提供了对sql的跟踪trace,通过trace文件能够进一步了解为什么优化其选择执行计划a而不选b执行计划,帮助我们更好的理解优化其的行为。使用方式:首先打开trace,设置格式为json,设置trace最大能够使用的内存大小,避免接续过程中因为默认内存太小而不能够完整显示set o...
分类:
其他好文 时间:
2014-08-26 15:17:56
阅读次数:
176
在oracle12c之前版本,varchar2和nvarchar2数据类型的字段长度最大值是4000,在12c版本已扩展最大值支持到32767,也就是32kb,而参数MAX_STRING_SIZE就是控制扩展数据类型extendeddatatype的最大长度:standard:代表12c之前的长度限制,即varchar2和nvarchar24是4000bytes,ra..
分类:
数据库 时间:
2014-08-26 03:04:46
阅读次数:
696
今天调优一条SQL语句,由于SQL比较复杂,用autotrace很难一眼看出哪里出了问题,直接上10046。
SELECT AB.*
FROM (SELECT A.*, rownum RN
FROM (SELECT *
from (SELECT DISTINCT (D.DEVICE_ID), F.FUNCTION_LOCATION_ID
f...
分类:
数据库 时间:
2014-08-20 21:14:23
阅读次数:
447
在MSSQL Server中通过查看SQL语句执行所用的时间,来衡量SQL语句的性能。从缓冲池中删除所有清除缓冲区命令:DBCCDROPCLEANBUFFERS清除所有缓存起来的执行计划,清除所有执行计划的语句:DBCCFREEPROCCACHE---------------------------...
分类:
数据库 时间:
2014-08-20 12:24:22
阅读次数:
172
如果一张表上有十几个索引,你有什么感受?显然会拖慢增、删、改的速度,不要指望开发人员能建好索引。我的处理方法是先监控很长的一段时间,看哪些索引没有用到,然后删除。但删除以后,如果发现某一天有用,那又要重新建,如果是大表,那就有些麻烦。现在11g提供一个新特性,不可见索引,可以建索引设置为不可见索引,CBO在评估执行计划的时候会忽略它,如果需要的时候,设置回来即可。
还有一种用途,你在调试一条SQL语句,要建一个索引测试,而你不想影响其他的会话,用不可见索引正是时候。...
分类:
数据库 时间:
2014-08-19 19:13:05
阅读次数:
232