
10053
bisal(Chen Liu)
这个作者很懒,什么都没留下…
展开
-
select count(*)、count(1)、count(主键列)和count(包含空值的列)有何区别?
下班路上看见网上有人问一个问题: oracle 10g以后count(*)和count(非空列)性能方面有什么区别?乍一看,确实有些含糊,Oracle中往往小问题蕴含着大智慧,如何破云见日?最直接的方法,我想就是通过10053事件,来看下不同SQL对应的执行计划和资源消耗等情况,进而看看是否有些信息可以为我们所用。首先,准备测试数据,11g库表bisal的id1列是主键(确保id1列为非空),原创 2017-02-14 00:11:01 · 9470 阅读 · 1 评论 -
探索索引的奥秘 - 10053事件
之前我们了解了索引的属性,以及一些对于是否能用索引似是而非的场景,相应的说明和结论可以参考,《探索索引的奥秘 - 索引的属性》《探索索引的奥秘 - 有索引就一定会用么?》对于一条SQL,是否可以用索引,在CBO下,是依赖于Oracle对于不同执行计划成本值预估的判断,下面这张图是Concept描述的优化器,优化器的输入,是通过解析器处理的语句,在优化器中,会执行以下操作,1. 基于可用的访问路径,...原创 2018-04-03 22:43:24 · 618 阅读 · 0 评论 -
Oracle CBO选错执行计划的一种场景
测试人员做应用性能测试,反馈有一条SQL语句,之前执行非常快,现在执行时间,明显慢了。 SQL语句非常简单,根据日期字段,检索当日表中记录数,select count(*) from user.tbl where cki_date = to_date('2017-10-10','yyyy-mm-dd'); 我们执行一次10053,SQL> alter sessi...原创 2018-12-10 13:08:11 · 970 阅读 · 0 评论