sql优化原则

sql优化的一般性原则
目标:
减少服务器资源消耗(主要是磁盘IO);
设计方面:
尽量依赖oracle的优化器,并为其提供条件;
合适的索引,索引的双重效应,列的选择性;
编码方面:
利用索引,避免大表FULL TABLE SCAN;
合理使用临时表;
避免写过于复杂的sql,不一定非要一个sql解决问题;
在不影响业务的前提下减小事务的粒度;

当一个Oracle实例接收一条sql后
1、Create a Cursor 创建游标
2、Parse the Statement 分析语句
3、Describe Results of a Query 描述查询的结果集
4、Define Output of a Query 定义查询的输出数据
5、Bind Any Variables 绑定变量
6、Parallelize the Statement 并行执行语句
7、Run the Statement 运行语句
8、Fetch Rows of a Query 取查询出来的行
9、Close the Cursor 关闭游标

解析
1、在共享池中查找SQL语句
2、检查语法
3、检查语义和相关的权限
4、合并(MERGE)视图定义和子查询
5、确定执行计划

sql语句的处理过程
1、在语句中查找绑定变量
2、赋值(或重新赋值)

执行(EXECUTE):
1、应用执行计划
2、执行必要的I/O和排序操作

提取(FETCH):
1、从查询结果中返回记录
2、必要时进行排序
3、使用ARRAY FETCH机制

共享游标的好处
1、减少解析
2、动态内存调整
3、提高内存使用率
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值