Oracle
Oracle开发及优化
4cott
酒后少女的梦
展开
-
with as 搭配 hint materialize的使用
今天看《SQL核心优化思想》第九章 生产中实际的优化案例时候发现几处子查询优化时候,用到了搭配 hint materialize 的with as用法。实际的案例是在一个IN的子查询的SQL中,子查询中返回数据量较小,但是主表中数据量很大之前在表连接中学习到,两表进行NL嵌套循环,应让小表作为驱动表,大表作为被驱动表,同时在大表的连接列建立索引。那针对此案例,应该将子查询作为NL的...原创 2020-04-01 21:56:06 · 1145 阅读 · 1 评论 -
Oracle常用调优技巧
最近各种加班,忙于指标项目的测试,终于有时间闲下来看书了。这次的学习笔记是第八章,调优技巧,闲话不多说,开记!一、使用UNION代替OR当SQL语句中同时有or和子查询,这种情况爱查询无法展开(unnest),只能走FILTER。这时将or改为union例:SELECT * FROM FROM T1 WHERE OWERN = 'SCOTT' OR OB...原创 2020-03-29 21:25:56 · 584 阅读 · 0 评论 -
Oracle中必要的查询变换
好几天前看完了第七章,终于有时间整理一下学习笔记了虽说不能真正的掌握,但是至少了解一些皮毛也是有好处的。至少面试的时候可以吹牛逼。一、子查询非嵌套当where子查询中有in 、not in、exists、not exists等,CBO会尝试将子查询展开(unnest),从而消除FILTER,这个过程叫做子查询非嵌套。为什么一定要消除FILTER呢,因为驱动表是固定的,这样...原创 2020-03-18 22:53:11 · 241 阅读 · 0 评论 -
Oracle中常见的表连接方式
日常学习笔记,这两天复工了,实在是太忙。第五章看了三天,终于有时间记笔记了。一、嵌套循环(NESTED LOOPS)嵌套循环的算法:驱动表返回一行数据,通过连接列传值给被驱动表,驱动表返回多少行,被驱动表就要被扫描多少次。(用落总的话就是驱动表多少行,被驱动表就要被干多少次)加上HINT:FIRST_ROWS,优化器更倾向于嵌套循环。嵌套循环的驱动表应该返回少量数据。在执...原创 2020-03-11 23:12:46 · 421 阅读 · 0 评论 -
Oracle执行计划中集中常见的访问路径
阅读《SQL优化核心思想》第4章 访问路径(ACCESS PATH) 笔记访问路径值得是通过哪种扫描方式获取数据。常见的访问路径有一、TABLE ACCESS FULL表示全表扫描,一般是多块读,HINT:FULL(表名/别名)Oracle里最小的存储单位是块(Block),物理上连续的块组成了区(extent),区又组成了段(segment),因为区里面的数据块在物理上是连...原创 2020-03-10 21:34:58 · 485 阅读 · 0 评论 -
Oracle执行计划中统计信息的含义
阅读《SQL优化核心思想》笔记1、recuresive calls:表示递归调用的次数,一个SQL第一次执行时候会发生硬解析,会大于0,第二次执行的时候就不需要递归调用,会等于0。如果SQL语句中有自定义函数,recursive calls永远不会等于0。2、db block gets:表示有多少个块发生变化3、consistent gets:表示逻辑读,单位是块,优化时通常情况...原创 2020-03-03 22:42:02 · 335 阅读 · 0 评论 -
解决 ORA-28547 连接服务器失败,可能是Oracle Net 管理错误
第一篇博客,原因是疫情期间在家办公,由于办公环境为局域网又没有配置VPN,所以只能在家根据记忆中需求的内容先搭起存储过程的框架,后续复工时候再修改。后期慢慢的自学Oracle优化和Linux时还会继续写,就当记笔记了。言归正传在虚拟机中win7安装了Oracle,然后用物理机连接的时候,报出错误:ORA-28547 连接服务器失败,可能是Oracle Net 管理错误查找...原创 2020-02-29 19:35:27 · 4881 阅读 · 0 评论