-- not in 的替代写法select col from table1 where col not in(select col from table2); select col,table2.col temp_colfrom table1 left join table2 on table1.c Read More
IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况。 性能上的比较 比如Select * from T1 where x in ( select y from T2 ) 执行的过程相当于: select * from t1, ( select distinct y from t2 Read More
1、NVARCHAR2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符。 2、而VARCHAR2(10)的话,则只能存进5个汉字,英文则可以存10个。 Read More
应用于那些执行计划已经发生了的不好的变更的SQL上(在不改变SQL文本的情况下,改变其执行计划),即便通过创建SQL Profile解决了目标SQL执行计划变更的问题,依然不能保证系统后续执行的SQL的执行计划会发生不好的变更。a. Automatic类型的SQL Profile1、先针对SQL创建 Read More
cast(rol_name as rol_type) Read More
错误提示: 一个汉字占了三个字节,而不是两个,这跟字符集有关。 查一下字符集:select userenv('language') from dual; 结果显示,本机Oracle的字符集是UTF-8,32位,而不是GBK的16位。UTF-8的每个字符占3个字节(bytes),可以通过修改默认字符集 Read More
当进行index full scan的时候 oracle定位到索引的root block,然后到branch block(如果有的话),再定位到第一个leaf block, 然后根据leaf block的双向链表顺序读取。它所读取的块都是有顺序的,也是经过排序的。而index fast full s Read More
访问表的执行计划: 全表扫描:TABLE ACCESS FULL ROWID扫描:TABLE ACCESS BY USER ROWID (ROWID来源于用户在where条件中的指定)或 TABLE ACCESS BY INDEX ROWID(rowid来源于索引) 与B树索引相关的执行计划: 索引 Read More
1.在PL/SQL Developer中得到一个SQL的执行计划 输入想要查看执行计划的目标SQL,再按一下快捷键F5就可以了。2.explain plan 命令 explain plan for + 目标SQL select * from table(dbms_xplan.display)3. D Read More
Oracle数据库里SQL优化的终极目标就是要缩短目标SQL语句的执行时间。要达到上述目的,我们通常只有如下三种方法可以选择:1、降低目标SQL语句的资源消耗。2、并行执行目标SQL语句。3、平衡系统的资源消耗。方法1:a、在不更改业务逻辑的情况下改写SQL来降低目标SQL语句的资源消耗。 b、不改 Read More