`

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、提高内存使用率
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics