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
全部博文(173)
发布时间:2022-04-14 09:02:29
FILTER操作是执行计划中常见的操作,这种操作有两种情况:
1. 只有一个子节点,那么就是简单过滤操作。(不是本文重点)
2. 有多个子节点,那么就是类似NESTED LOOPS操作,只不过与NESTED LOOPS差别在于,FILTER内部会构建HASH表(有缓存提高效率,缓存的bucket数目是1024个),对于重复匹配的,不会再次进行循环查找,而是利用已有结果,提高效率。但是一旦重复匹配的较少,循环次数多,也就是类似NESTED LOOPS,那么这种FILTER操作将是严重影响性能的操作,可能你的SQL几天都执行不完了。(本文讨论重点)
......【阅读全文】
发布时间:2022-04-12 10:46:03
SQL> DROP TABLE t;SQL> CREATE TABLE t AS SELECT * FROM dba_objects;SQL> INSERT INTO t SELECT * FROM t;SQL> commit;SQL> SELECT COUNT(*) FROM t;----------已更新999行。索引已创建。PL/SQL 过程已成功完成。 1.COUNT统计NULL的数据执行计划Plan hash v.........【阅读全文】
发布时间:2022-04-12 10:26:22
选择组合索引的前导列,必须根据具体的业务(SQL)写法不同而不同,很多书本或网上都说,前导列要选择高选择性的,但是,脱离具体的业务,这些是没有意义的,
本文就举一些常见的例子来分析下如何正确选择前导列,以抛砖引玉,实际应用中,有更多复杂的情况需要具体分析。......【阅读全文】
发布时间:2022-04-12 09:55:38
在使用递归操作的时候,经常会遇到递归条件报错:ORA-01436: 用户数据中的 CONNECT BY 循环。特别是在做一些技巧性语句的时候,比如常见的复制和展开行,字符串拆分。这时候经常会使用层次查询CONNECT BY。但是稍加不慎,就会报递归循环错误......【阅读全文】