Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6693
  • 博文数量: 7
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2015-06-04 14:50
  • 认证徽章:
文章分类
文章存档

2016年(7)

我的朋友
最近访客

发布时间:2016-01-24 10:23:04

在ORACLE 11G大行其道的今天,还有很多人受早期版本的影响,记住一些既定的规则,
1.子查询结果集小,用IN
2.外表小,子查询表大,用EXISTS

这是完全错误的观点。在8i时代,这经常是正确的,但是现在已经11G了,马上12C就要面世了。其实在ORACLE 9i CBO就已经优化了IN,EXISTS的区别,ORACLE优化器有个查询转换器,很多SQL虽然写法不同,但是ORACLE优化器会根据既定规则进行查询重写,重写为优化器觉得效率最高的SQL,所以可能SQL写法不同,但是执行计划却是完全一样的。......【阅读全文】

阅读(210) | 评论(0) | 转发(0)

发布时间:2016-01-24 10:20:58

TABLE函数在SQL中使用,可以将传入的集合转为普通表使用,与管道函数结合使用,往往能够提高效率,然后在实际应用过程中,发现CBO对TABLE函数的启发式基数估算,往往会导致性能问题。以下SQL虽然单条运行很快,但是运行非常频繁,严重消耗CPU资源。......【阅读全文】

阅读(260) | 评论(0) | 转发(0)

发布时间:2016-01-24 10:20:52

我们经常需要对一些重复数据进行处理,删除重复的数据,只保留一份即可。......【阅读全文】

阅读(180) | 评论(0) | 转发(0)

发布时间:2016-01-23 21:22:16

因为优化器还不够强大,还有很多限制,或者因为一些逻辑原因,分析认为SQL要走正确的索引比较好,但是事实却无法正确利用索引。
?这时候,写的SQL必须除了统计信息之外,要能够给优化器足够多的其他需要的信息,让优化器能够选择更好的执行计划。......【阅读全文】

阅读(190) | 评论(0) | 转发(0)

发布时间:2016-01-23 21:22:08

因为优化器还不够强大,还有很多限制,或者因为一些逻辑原因,分析认为SQL要走正确的索引比较好,但是事实却无法正确利用索引。
?这时候,写的SQL必须除了统计信息之外,要能够给优化器足够多的其他需要的信息,让优化器能够选择更好的执行计划。......【阅读全文】

阅读(210) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册