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
全部博文(166)
发布时间:2020-11-04 15:27:53
显式或隐式类型转换要走index full scan,必须增加not null约束或显示条件增加is not null才能走index (fast) full scan。
否则to_char(object_id)='100'这种条件只是告诉优化器,to_char(object_id)肯定is not null,
但是优化器不知道里面的参数object_id是否为null,所以不增加not null约束或不增加条件,肯定走不了index fast full scan,使用hints都不行
......
发布时间:2020-09-30 16:32:19
1)标量子查询的计划和普通计划的执行顺序不同,标量子查询虽然在上面,但是它由下面的customers表结果驱动,每行驱动查询一次标量子查询。
2)标量子查询和filter类似,如果是它们引起的性能问题,要关注是否是执行子查询的次数过多导致查询的效率不高。
3)标量子查询和filter类似,它会根据输入和输出构建hash表缓存键值对,已经查询过的键值对直接从缓存中查找,不用再次执行子查询,从而减少子查询的次数达到优化的目的,10g和11g缓存的是255个hash buckets,12c是1024个hash buckets。......【阅读全文】
发布时间:2020-08-31 16:00:09
直方图与绑定变量问题是困扰sql性能优化的一个典型问题:一方面绑定变量是为了让执行计划共享,从而减少或避免解析,但是如果一个列分布不均,传入不同的值最佳执行计划应该不一样,比如当status=’invalid’的时候最佳执行计划是走索引,当status=’valid’时候最佳执行计划是要求全表扫描,遇到这种情况,必须要再次窥视传入的绑定变量值,才能走正确执行计划,因此,11g引入了adaptive cursor sharing(acs)来解决这个问题,但是因为bug多,一般情况下生产库是建议关闭的。那么还能不能解决这个问题呢?在11.2及之后答案是肯定的。在11.2的时候,我们使用sql patch来解决,这个类似sql profile。......【阅读全文】
发布时间:2020-07-23 17:06:09
1)了解b*tree、bitmap、iot等索引类型特点和使用。
2)了解索引的扫描方式以及走不了索引的情况等。
3)索引在分页查询中的应用。
......【阅读全文】