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
全部博文(180)
发布时间:2025-02-20 08:40:55
having普通列(非聚合条件)提升到where里,在分组之前过滤,如果having的普通列可以走索引效率好,这种提升有好处
测试下来,只有pg支持,MySQL文档说支持,但是测试部支持,oracle不支持
能放到where里的条件不要放到having里,是编写SQL的准则之一......【阅读全文】
发布时间:2024-12-01 10:50:34
分区pruning是分区里的重要,通过partition pruning可以只访问需要的分区,实现减少IO的目的,
如果不能partition pruning,则可能全表(分区)访问,因为分区表一般很大,很显然IO很多,效率低,
当然,如果全表(分区)访问,如果有索引,也可能走索引提高效率的。
另外就算不能分区pruning,如果全局分区索引,如果走全局分区索引,也可能利用到索引分区裁剪。分区裁剪分为表分区裁剪、索引分区裁剪。
......【阅读全文】
发布时间:2024-12-01 10:29:35
分页查询必须有COUNT STOPKEY裁剪,另外要使用索引消除排序才是最高效的。注意取前N行和第M到第N行的两重嵌套和三重嵌套写法。
......【阅读全文】
发布时间:2024-04-02 16:51:51
背景:一般情况下,如果子查询里含有OR或外面的WHERE条件含有OR,如果走不了disjunctive subquery unnest,则会走FILTER,效率较低,
对符合条件的disjunctive subquery,ORACLE CBO能够进行unnest,由隐含参数_optimizer_unnest_disjunctive_subq控制。
本次讨论的就是将OR子查询改写为JOIN,构造等值条件,让原来走FILTER的执行计划走HASH JOIN,大幅度提高效率。
......【阅读全文】
发布时间:2022-04-14 08:44:40
SQLTXPLAIN(简称SQLT)是ORACLE COE提供的一款SQL性能诊断工具,SQLT主要方法是通过输入的一个SQL语句,从而生成一组诊断文件,这些文件用于诊断性能较差的或产生错误结果(WRONG RESULTS)的SQL。......【阅读全文】