随笔分类 -  Oracle

ORACLE表的恢复
摘要:对误删的表,只要没有使用PURGE永久删除选项,那么从flash back区恢复回来希望是挺大的。一般步骤有: 1、从flash back里查询被删除的表 select * from recyclebin 2.执行表的恢复 flashback table tb to before drop,这里的t 阅读全文

posted @ 2016-12-20 14:39 喵尾景虎 阅读(139) 评论(0) 推荐(0)

分页sql优化
摘要:如果分页sql里包含排序:select * from (...order by id) where rownum <=20因为要排序,所以即使是分页只取20条,执行计划还是要把所有满足条件的记录到取出来,然后再整体进行排序,再取结果的20条返回。假如满足条件的结果很多,这个sql的性能会比较差。如何... 阅读全文

posted @ 2015-09-17 12:28 喵尾景虎 阅读(241) 评论(0) 推荐(0)

Oracle找回删除的记录
摘要:select * from table AS OF TIMESTAMP systimestamp - 1/24/2;用这个sql可以找回table表半小时前的记录,最后的时间可以改,但是太久了估计是找不回来的。 阅读全文

posted @ 2015-07-21 17:51 喵尾景虎 阅读(227) 评论(0) 推荐(0)

oracle 金额格式化
摘要:一般金额要显示成 XXX,XXX,XXX.XX的格式,可以这样做:to_char(column, 'FM999,999,999,990.00') 阅读全文

posted @ 2015-03-30 16:12 喵尾景虎 阅读(1609) 评论(0) 推荐(0)

Oracle分组排序查询
摘要:用sql查询每个分组中amount最大的前两条记录:SELECT *FROM HW trWHERE(SELECT COUNT(*) FROM HW WHERE tr.DEPID=DEPID AND AMOUNT>tr.AMOUNT)< 2ORDER BY DEPID, TR.AMOUNT DESC应... 阅读全文

posted @ 2015-02-09 19:01 喵尾景虎 阅读(299) 评论(0) 推荐(0)

查看oracle被锁的表
摘要:SELECT /*+ rule*/ a.sid, b.owner, object_name, object_type FROM v$lock a, all_objects b WHERE TYPE = 'TM' and a.id1 = b.object_id;查到的都是被锁的表SELECT * FR... 阅读全文

posted @ 2014-12-16 10:06 喵尾景虎 阅读(162) 评论(0) 推荐(0)

Oracle truncate和delete的区别
摘要:首先truncate是DDL语句,而delete是DML语句。truncate的删除比delete快很多,尤其是表数据量大的时候,原因是truncate执行过程中不产生undo,所以truncate也无法再回滚。而delete在commit之前肯定是可以回滚的。truncate的另一个特性是会将表的... 阅读全文

posted @ 2014-11-17 19:34 喵尾景虎 阅读(298) 评论(0) 推荐(0)

表的外键必须建索引的问题
摘要:一般来说,表有外键的话,外键字段必须要建索引。原因是如果没有索引,插入数据时会锁住整张表,而不是特定的行,这样高并发时就有性能问题。根据这个原因,如果表没有高并发写,其实外键可以不加索引,因为索引也是有开销的,只有高并发读也可以不加。所以说不是任何外键都必须加索引的。 阅读全文

posted @ 2014-11-14 13:52 喵尾景虎 阅读(1722) 评论(0) 推荐(0)

对某个字段去重
摘要:insert into 临时表 select distinct 去重字段 from 原表;drop table 原表;rename 临时表名 to 原表名; 阅读全文

posted @ 2014-11-03 11:40 喵尾景虎 阅读(289) 评论(0) 推荐(0)

Oracle找出非数字
摘要:可以这样判断:select translate('99999999999999', '\1234567890', '\') from dual;返回的是空 ​select translate('99999ss999999999', '\1234567890', '\') from dual;返回的是... 阅读全文

posted @ 2014-10-27 09:33 喵尾景虎 阅读(1055) 评论(0) 推荐(0)

Oracle Hint 用法
摘要:正确的语法是:select /*+ index(x idx_t) */ * from t x where x.object_id=123/*+ */ 和注释很像,比注释多了一个“+”,这就是Hint上面这个hint的意思是让Oracle执行这个SQL时强制走索引。如果hint的语法有错误,Orac... 阅读全文

posted @ 2014-07-24 21:53 喵尾景虎 阅读(5687) 评论(0) 推荐(0)

Oracle绑定变量
摘要:select * from table where id = ?类似于上面这样的sql,如果不用绑定变量,每次执行时Oracle会认为是不同的sql,会在每次执行时生成一遍执行计划,而执行计划的生成是非常耗CPU,试想一下,如果1000个并发都在执行这条语句,等于同时在生成1000个执行计划。如果使... 阅读全文

posted @ 2014-05-06 20:39 喵尾景虎 阅读(1003) 评论(0) 推荐(0)

Oracle列操作引起的全表扫描
摘要:首先是一种比较明显的情况:select * from table where column + 1 = 2这里对column进行了列操作,加1以后,与column索引里的内容对不上,导致column不走索引,走了全表扫描。修改方式也很简单,把+1移到右边,即:select * from table ... 阅读全文

posted @ 2014-04-19 08:41 喵尾景虎 阅读(1664) 评论(0) 推荐(0)

dbms_job.submit 单次执行
摘要:DBMS_JOB.SUBMIT用于定时任务,基本用法如下:DBMS_JOB.SUBMIT(:jobno,//job号 'your_procedure;',//要执行的过程trunc(sysdate)+1/24,//下次执行时间'trunc(sysdate)+1/24+1'//每次间隔时间);删除jo... 阅读全文

posted @ 2014-04-17 16:31 喵尾景虎 阅读(2817) 评论(0) 推荐(0)

oracle查看表占磁盘大小
摘要:select segment_name, bytes/1024/1024from user_segments Swhere S.segment_type = 'TABLE'AND S.segment_name = ‘XXXX';//表名但对于有blob字段的不适用,blob内容不会被统计,统计blob大小的方法:select SEGMENT_NAME, TABLESPACE_NAME, TO_CHAR(SUM(BYTES) / (1024 * 1024), '999G999D999') CNT_MB from dba_extents T WHERE T. 阅读全文

posted @ 2014-04-12 17:46 喵尾景虎 阅读(2261) 评论(0) 推荐(0)

Oracle关闭session锁
摘要:select session_id from v$locked_object;//找到锁的sessionIdSELECT * FROM v$session //查看该sessionId以及对应的serialALTER SYSTEM KILL SESSION '148,15001'; //根据sessionId和serial关闭 阅读全文

posted @ 2014-04-12 17:37 喵尾景虎 阅读(1736) 评论(0) 推荐(0)

Linux下启动Oracle
摘要:切换到oracle用户su - oracle启动监听lsnrctl start确认是不是想要启动的oracle实例echo $ORACLE_SID如果不是,切换SIDoracle切换SID:vi .bash_profile修改export ORACLE_SID=dg1保存退出使修改生效. ~/.bash_profileecho $ORACLE_SID查看连接sqlplussqlplus '/as sysdba'启动startup 阅读全文

posted @ 2014-04-12 17:36 喵尾景虎 阅读(235) 评论(0) 推荐(0)

Oracle字符集设置
摘要:客户端与服务端字符集不一致会造成乱码问题。在服务端:sql>SELECT * FROM NLS_DATABASE_PARAMETERS;在查询结果中关注如下参数:nls_language => Lnls_territory => Tnls_characterset => C在客户端的注册表里,根据服务端参数修改nls_lang,格式如下:set nls_lang=L_T.C这样客户端与服务端字符集就一致了。 阅读全文

posted @ 2014-04-12 17:34 喵尾景虎 阅读(152) 评论(0) 推荐(0)