性能测试之执行计划一

1)、什么是执行计划:

	SQL 语句编写过程:select xx,tr, from ... where ... order by ...

	SQL 语句执行过程:
		先从from字句一个表或多个表创建工作表;
		将where条件应用于A的工作表,保留满足条件的行;
		GroupBy 将B的结果分成多个组;
		Having 将条件应用于C组合的条件过滤,只保留符合要求的组;
		Order By对结果进行排序;

2)、执行计划能干什么

	   在性能测试中或数据库的应用中,我们评估SQL语句的性能,诊断问题;

3)、如何看懂执行计划

    a)、看懂SQL语句的执行顺序;
	    "最右最上"原则执行。
		
	b)、看懂数据库表的访问方式
	    Index unique Scan: 在主键索引或者unique索引上会出现
		Index range Scan: 索引上有> ,<,between ..and
		Index full Scan:  10I,11I 12C ,CBO 
		Index fast full Scan: 不对查询出来的结果进行排序;
		Index skip Scan: 组合索引的第一列没有被使用到;
		全表扫描:没有索引(索引失效)  ------------ > 在提示我们,可以需要一些性能优化了;
	
	c)、看懂数据库表和表之间的连接方式:
	
        归并排序:
		嵌套循环:
		哈希连接:
		笛卡尔积:
    总结:
	     上面这些内容属于Oracle内部的,我们在外部没法直接干预;
		 我们能做的是:
				涉及到表连接的时候:in、exist,on 、where 用对SQL;
				涉及到表内部的访问方式:有没索引、有没有误用造成索引失效;
		
         子查询(where连接)如果发现有性能问题,我们可以用join on 来试试;
         有提升的当然更好,没有提升呢,我们也尽力,从其他层面考虑问题。
         索引是优化性能的有效手段,但不是说,全表扫描一定比索引慢,Oracle自身的计算结果选一个他认为最好的;
		 
		 性能测试定性不定量:性能测试是和一定的数据量和硬件联系在一起的。

4)、执行计划在性能测试中的应用;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值