SQL优化活动
- 格式:pdf
- 大小:2.28 MB
- 文档页数:19
路径最优化差异
SQL编写策略
Client/Server中的SQL
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
SQL编写策略
并行处理的影响和参数值使用的影响
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
2014/11/27 18
使用常见的Hints-SQL Server
select * from myt4 with (forceseek) where ENAME='KING'; select * from myt4 with (forceseek,index(idx1)) where ENAME='KING'; select * from myemp inner hash join mydept on myemp.DEPTNO=mydept.DEPTNO select * from myemp inner merge join mydept on myemp.DEPTNO=mydept.DEPTNO select * from myemp inner loop join mydept on myemp.DEPTNO=mydept.DEPTNO
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
SQL语句优化过程
① 定位有问题的语句(如何定位?) ② 检查执行计划 ③ 检查执行过程中优化器的统计信息 ④ 分析相关表的记录数、索引情况 ⑤ 改写SQL语句、使用HINT、调整索引、表分析 ⑥ 有些SQL语句不具备优化的可能,需要优化处理方式(设计或逻
过150
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
2014/11/27 17
通过内部函数提高SQL效率
Over函数的说明:
over(order by salary rows between 50 preceding and 150 following)
扩张型Select语句的基本类型
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
扩张型Select语句的集合连接
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
2014/11/27 14
扩张型Select语句的分类的基本应用
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
示例说明
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
2014/11/27 16
示例说明
示例说明
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
SQL Server 活动和监视器 报表 其它方式
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
2014/11/27 1
SQL语句的执行过程
Oracle
SQL语句的执行过程
SQL Server
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
2014/11/27 9
Bitmap索引的战略与价值
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
连接条件状态对表连接的影响
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
执行速度与SQL类型之间的区别
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
2014/11/27 12
执行速度与SQL类型之间的区别
Semi Join(半连接)
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
有效创建流水号的方法
通过内部函数提高SQL效率
分析函数的主要用法:
Analytic-Function(<Argument>,<Argument>,...) OVER ( <Query-Partition-Clause> <Order-By-Clause> <Windowing-Clause> )
其中over()被称为开窗函数,开窗函数指定了分析函数工作的数据窗 口大小,这个数据窗口大小可能会随着行的变化而变化,如:
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
SQL编写策略
关联与分次执行(SQL语句的反过程化处理)
SQL编写策略
随机读取发生量的差异
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
SQL语句性能调优活动
目录
序号
主要内容
1 性能诊断
2 表与索引优化
3 锁与等待
4 优化器与执行计划
5 讨论与解答
时间安排 20分钟 40分钟 20分钟 40分钟 10分钟
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
高负载的SQL诊断
Oracle中 AWR报告 ASH报告 EM 其它方式
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
2014/11/27 11
条件变化对连接的影响
Hash连接的特征
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
2014/11/27 7
运算符与复合索引
Index Skip Scan的意义
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
索引列序的重要理由
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
2014/11/27 13
Filter型局部范围扫描
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
DISTINCT,MINUS,INTERSECT,UNION
MIN,MAX,COUNT
GROUP BY
ROWNUM
Queries involving Joins
CONNECT BY
执行计划
SORT ORDER BY UNION-ALL MINUS INTERSECT SORT UNIQUE SORT AGGREGATE SORT GROUP BY COUNT or COUNT STOPKEY SORT JOIN,MERGE JOIN,NESTED LOOPS CONNECT BY
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
2014/11/27 5
SQL编写策略
逻辑最优与实际最优
执行计划与SQL
执行计划的影响
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
索引的影响
索引与运算符之间的关系
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
2014/11/27 8
无法缩减查询范围的列
构建索引中列序的准则
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
索引的构建战略
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
减少拼接SQL语句 select * from emp where empno=7889 select * from emp where empno=7889 and ename=‘King’
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
为什么SQL性能差
主要原因: 开发人员只关注查询结果的正确性,忽视查询语句的效率。 可通过SQL的写法技巧来提升 开发人员只关注SQL语句本身的效率,对SQL语句执行原理、影响 SQL执行效率的主要因素不清楚。 深入理解SQL的执行原理与步骤来提升
常用的分析函数
AVG
COUNT
SUM
CUME_DIST
DENSE_RANK
务实 PRAGMATIC 专业 PROFESSIONAL 诚信 INTEGRITY
通过内部函数提高SQL效率
常用的分析函数 FIRST_VALUE LAG LEAD LAST_VALUE RANK DENSE_RANK ROW_NUMBER
每行对应的数据窗口是之前50行,之后150行