随笔分类 -  oracle

摘要:-- 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 阅读全文
posted @ 2018-02-09 16:41 秦先生的客栈 阅读(5434) 评论(0) 推荐(0)
摘要:IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况。 性能上的比较 比如Select * from T1 where x in ( select y from T2 ) 执行的过程相当于: select * from t1, ( select distinct y from t2 阅读全文
posted @ 2018-02-08 21:50 秦先生的客栈 阅读(273) 评论(0) 推荐(0)
摘要:1、NVARCHAR2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符。 2、而VARCHAR2(10)的话,则只能存进5个汉字,英文则可以存10个。 阅读全文
posted @ 2018-02-08 21:49 秦先生的客栈 阅读(1383) 评论(0) 推荐(1)
摘要:应用于那些执行计划已经发生了的不好的变更的SQL上(在不改变SQL文本的情况下,改变其执行计划),即便通过创建SQL Profile解决了目标SQL执行计划变更的问题,依然不能保证系统后续执行的SQL的执行计划会发生不好的变更。a. Automatic类型的SQL Profile1、先针对SQL创建 阅读全文
posted @ 2018-02-08 21:48 秦先生的客栈 阅读(3793) 评论(0) 推荐(0)
摘要:cast(rol_name as rol_type) 阅读全文
posted @ 2018-02-08 21:46 秦先生的客栈 阅读(201) 评论(0) 推荐(0)
摘要:错误提示: 一个汉字占了三个字节,而不是两个,这跟字符集有关。 查一下字符集:select userenv('language') from dual; 结果显示,本机Oracle的字符集是UTF-8,32位,而不是GBK的16位。UTF-8的每个字符占3个字节(bytes),可以通过修改默认字符集 阅读全文
posted @ 2018-02-08 21:45 秦先生的客栈 阅读(1944) 评论(0) 推荐(0)
摘要:当进行index full scan的时候 oracle定位到索引的root block,然后到branch block(如果有的话),再定位到第一个leaf block, 然后根据leaf block的双向链表顺序读取。它所读取的块都是有顺序的,也是经过排序的。而index fast full s 阅读全文
posted @ 2018-02-05 22:43 秦先生的客栈 阅读(2657) 评论(0) 推荐(0)
摘要:访问表的执行计划: 全表扫描:TABLE ACCESS FULL ROWID扫描:TABLE ACCESS BY USER ROWID (ROWID来源于用户在where条件中的指定)或 TABLE ACCESS BY INDEX ROWID(rowid来源于索引) 与B树索引相关的执行计划: 索引 阅读全文
posted @ 2018-02-05 22:26 秦先生的客栈 阅读(159) 评论(0) 推荐(0)
摘要:1.在PL/SQL Developer中得到一个SQL的执行计划 输入想要查看执行计划的目标SQL,再按一下快捷键F5就可以了。2.explain plan 命令 explain plan for + 目标SQL select * from table(dbms_xplan.display)3. D 阅读全文
posted @ 2018-02-05 22:25 秦先生的客栈 阅读(2086) 评论(0) 推荐(0)
摘要:Oracle数据库里SQL优化的终极目标就是要缩短目标SQL语句的执行时间。要达到上述目的,我们通常只有如下三种方法可以选择:1、降低目标SQL语句的资源消耗。2、并行执行目标SQL语句。3、平衡系统的资源消耗。方法1:a、在不更改业务逻辑的情况下改写SQL来降低目标SQL语句的资源消耗。 b、不改 阅读全文
posted @ 2018-02-05 22:24 秦先生的客栈 阅读(384) 评论(0) 推荐(0)
摘要:并行执行与串行执行相比,能否缩短执行时间,取决于如下几个方面:1、待执行的目标SQL是否适合并行执行,有些SQL是不太适合并行执行的,比如走索引的嵌套循环连接。2、数据库服务器上的硬件资源(如CPU、内存、I/O等)是否还有富余。3、并行执行时,是否最大化地利用了数据库服务器上的硬件资源(但同时又不 阅读全文
posted @ 2018-02-04 22:32 秦先生的客栈 阅读(566) 评论(0) 推荐(0)
摘要:1、闪回查询(原理:依赖于UNDO表空间)查询当前SCN号select current_scn from v$database;误删数据以后select * from table_name as of scn 删除数据前的SCN号;将数据重新插入表中insert into table_name se 阅读全文
posted @ 2018-02-04 22:30 秦先生的客栈 阅读(2197) 评论(0) 推荐(0)
摘要:1、创建表空间 CREATE TABLESPACE TBS_TR_DATA DATAFILE '/oradata/rTBS_TR_DATA_001.dbf' SIZE 64G EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ONLINE; 阅读全文
posted @ 2018-02-04 22:23 秦先生的客栈 阅读(298) 评论(0) 推荐(0)
摘要:group by rollup() 按分组合计 select grouping(status),status,owner,object_type,count(*) from dba_objects where owner not in ('SYS','SYSTEM') group by rollup 阅读全文
posted @ 2018-02-03 22:27 秦先生的客栈 阅读(1990) 评论(0) 推荐(0)
摘要:select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where a.object_id = b.object_id 阅读全文
posted @ 2018-02-03 22:25 秦先生的客栈 阅读(265) 评论(0) 推荐(0)
摘要:按照...分组排序后,得到行编号: row_number() over(partition by ... order by ...) 按照...分组排序后,得到相应的列的第一个数据: first_value(列名或列位置) over(partition by ... order by ...) 阅读全文
posted @ 2018-02-03 22:22 秦先生的客栈 阅读(1512) 评论(0) 推荐(0)
摘要:add_months(last_day(trunc(sysdate)),N)N可以为正,表示增加;N可以为负,表示减少。 阅读全文
posted @ 2018-02-03 22:13 秦先生的客栈 阅读(1736) 评论(0) 推荐(0)
摘要:sqlplus 用户名/密码@IP:端口号/oracle实例 阅读全文
posted @ 2018-02-03 22:07 秦先生的客栈 阅读(296) 评论(0) 推荐(0)
摘要:如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来。union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全 阅读全文
posted @ 2018-02-02 21:50 秦先生的客栈 阅读(5218) 评论(0) 推荐(0)
摘要:Oracle在9i引入了merge命令, 通过这个merge你能够在一个SQL语句中对一个表同时执行inserts和updates操作. 当然是update还是insert是依据于你的指定的条件判断的,Merge into可以实现用B表来更新A表数据,如果A表中没有,则把B表的数据插入A表. MER 阅读全文
posted @ 2018-02-02 21:47 秦先生的客栈 阅读(1529) 评论(0) 推荐(0)