About me:Oracle ACE pro,optimistic,passionate and harmonious. Focus on ORACLE,MySQL and other database programming,peformance tuning,db design, j2ee,Linux/AIX,Architecture tech,etc
全部博文(172)
发布时间:2020-06-26 23:54:32
CBO( Cost Based Optimizer)优化器是目前ORACLE默认使用的优化器,它使用统计信息、查询转换等计算各种可能的访问路径成本,并生成多种备选执行计划,最终ORACLE选择成本最低的作为最终执行计划。与旧的RBO(Rule Based Optimizer)相比,更加灵活,可根据实际情况选择最佳执行路径。
但是,由于其自身非常复杂,CBO的限制以及存在的BUG非常多,这时,作为SQL开发和优化人员,应该根据CBO特性,编写高效语句,以避免踩坑CBO优化器。
本文以两类常见的SQL优化问题来探讨基于ORACLE的高效SQL编写和优化。
......【阅读全文】
发布时间:2020-06-24 15:50:15
分析函数是什么??分析函数是带over的,对每行都应用分析函数,然后分析函数根据排序规则(没有排序就是没有顺序的规则,order by就是起到一个分析函数在行上滑动方向的作用)按行向下滑动,直到全部行应用分析函数完毕则分析函数结束。分析函数的计算是在当前行所属的窗口上(这个是一个结果集,每行对应的窗口总是有一个结果集)进行的,每行对应的窗口范围是由partition,order by和window子句共同决定,分析函数就根据这个范围来计算当前行的值。......【阅读全文】
发布时间:2020-06-24 09:07:12
分析函数是什么??分析函数是带over的,对每行都应用分析函数,然后分析函数根据排序规则(没有排序就是没有顺序的规则,order by就是起到一个分析函数在行上滑动方向的作用)按行向下滑动,直到全部行应用分析函数完毕则分析函数结束。分析函数的计算是在当前行所属的窗口上(这个是一个结果集,每行对应的窗口总是有一个结果集)进行的,每行对应的窗口范围是由partition,order by和window子句共同决定,分析函数就根据这个范围来计算当前行的值。......【阅读全文】
发布时间:2020-06-23 15:42:43
动态sql是在运行期构造和执行的。动态是与静态相对的概念。静态的就是harcode(硬编码),动态的就是softcode(软编码),静态sql是固定的,不可改变的,在编译期会检查一些语法错误等。但是动态sql在编译期不会确定这些,。动态PL/SQL是动态构造整个PL/SQL块,并在运行期动态构造,然后编译和执行。写动态sql,能满足更加灵活和写出更加具有重用功能的代码(如封装一个创建table的过程)。......【阅读全文】
发布时间:2020-06-23 09:14:20
动态sql是在运行期构造和执行的。动态是与静态相对的概念。静态的就是harcode(硬编码),动态的就是softcode(软编码),静态sql是固定的,不可改变的,在编译期会检查一些语法错误等。但是动态sql在编译期不会确定这些,。动态PL/SQL是动态构造整个PL/SQL块,并在运行期动态构造,然后编译和执行。写动态sql,能满足更加灵活和写出更加具有重用功能的代码(如封装一个创建table的过程)。......【阅读全文】