SQL> set autotrace traceonly statistics; SQL> insert into big_table_dir_test1 select * from big_table_dir_test; rows created. Statistics ---------------------------------------------------------- recursive calls db block gets consistent gets physica…
https://blog.csdn.net/xiaobluesky/article/details/50494101 关于insert /*+ append */我们需要注意以下三点: a.非归档模式下,只需append就能大量减少redo的产生:归档模式下,只有append+nologging才能大量减少redo. b.insert /*+ append */ 时会对表加锁(排它锁),会阻塞表上的除了select以外所有DML语句:传统的DML在TM enqueue上使用模式3(row exc…
业务处理中,很多时候使用实表临时表处理中间结果,而实表的Insert操作缺省会记录redo log,针对此问题收集相关测试总结信息如下: [转] 常见dml.ddl语句使用nologging选项所生成的redo和undo大小比较 DDL/DML Operations Direct-path nologging parallel Noarchivelog Redo Noarchivelog Undo Archivelog Redo Archivelog Undo Insert into XXX s…
来源于:http://www.cnblogs.com/rootq/archive/2009/02/11/1388043.html SQL> select count(*) from t;COUNT(*)----------5442048****************************SQL> alter table t1 nologging;SQL> insert /*+append*/ into t12 select * from t;5442048 rows created.…
SQL> select count(*) from t;COUNT(*)----------5442048****************************SQL> alter table t1 nologging;SQL> insert /*+append*/ into t12 select * from t;5442048 rows created.Elapsed: 00:00:55.73****************************SQL> create ta…
来源于:http://blog.sina.com.cn/s/blog_61cd89f60102e7gi.html 当需要对一个非常大的表INSERT的时候,会消耗非常多的资源,因为update表的时候,oracle需要生成 redo log和undo log;此时最好的解决办法是用insert, 并且将表设置为nologging;当把表设为nologging后,并且使用的insert时,速度是最快的,这个时候oracle只会生成最低限度的必须的redo log,而没有一点undo信息.如果有可能…
快速向表中插入大量数据Oracle中append与Nologging 2017-05-05 / VIEWS: 304 来源于:http://blog.sina.com.cn/s/blog_61cd89f60102e7gi.html 当需要对一个非常大的表INSERT的时候,会消耗非常多的资源,因为update表的时候,oracle需要生成 redo log和undo log;此时最好的解决办法是用insert, 并且将表设置为nologging;当把表设为nologging后,并且使用的inse…
[转载] Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. Oracle分页查询格式(一):http://yangtingkun.itpub.net/post/468/100278 Oracle分页查询格式(二):http://yangtingkun.itpub.net/post/468/101703 Oracle分页查询格式(三):http://yangtingkun.itpub.net/post/468/104595 Oracle分页查询格式(四):http://yangt…
Oracle  DBA 必须掌握的 查询脚本: 0:启动与关闭 orcle 数据库的启动与关闭 1:连接数据库 2:数据库开启状态的实现步骤:       2-1:启动数据库           2-1-1正常启动数据库: SQL> startup                       特点:启动数据库,分配内存,打开实例,启动后台进程,数据库处于open状态         2-1-2:进入nomount状态 SQL> startup nomount                 …
**********************************************************************************************************  NESTED LOOP/HASH JOIN/SORT MERGE JOIN的区别   今天遇到一个SQL问题,耗时很久,CPU开销很大. 通过分析,发现本该采用nestedloop的语句,结果采用了hashjoin. 修改后效果显著.顺便转一篇关于连接的文章. 原SQL: SELEC…
本文转自:http://blog.csdn.net/fw0124/article/details/42737671 ********************************************************************************************************** [转载] Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. Oracle分页查询格式(一):http://yangtingkun.itpub.net/p…
--版本信息 SELECT * FROM v$version; Oracle - Prod PL - Production CORE Production TNS - Production NLSRTL Version - Production --查看是否归档 select name,log_mode from v$database; ORCL NOARCHIVELOG 或sqlplus:ARCHIVE LOG LIST; --创建查看产生redo大小的视图 create or replace…
一.连接查询  1.内连接      内连接用于返回满足连接条件的所有记录.默认情况下,在执行连接查询时如果没有指定任何连接操作符,那么这些连接查询都属于内连接. Sql代码   1.   SELECT a.dname,b.ename from dept a,emp b where a.deptno=b.deptno and a.deptno=10; 在FROM子句中指定INNER JOIN选项,也可以指定内连接. Sql代码   1.   SELECT a.dname,b.ename from…
在很多时候,我们会需要对一个表进行插入大量的数据,并且希望在尽可能短的时间内完成该工作,这里,和大家分享下我平时在做大量数据insert的一些经验. 前提:在做insert数据之前,如果是非生产环境,请将表的索引和约束去掉,待insert完成后再建索引和约束. 1. insert into tab1 select * from tab2;  commit; 这是最基础的insert语句,我们把tab2表中的数据insert到tab1表中.根据经验,千万级的数据可在1小时内完成.但是该方法产生的a…
Oracle Flashback Technologies - 闪回查询 查看表中,某行数据的修改记录 #创建一个表,并插入和修改数据 SQL> create table y3(id )); Table created. SQL> insert into y3 values(,'wahaha'); row created. SQL> commit; Commit complete. SQL> update y3 ; row updated. SQL> commit; Comm…
Oracle 中利用闪回查询确定某表在某时间点之后的修改内容: 1.查看 DELETE 及 UPDATE 操作修改的数据: SQL> SELECT * FROM tab AS OF TIMESTAMP  to_timestamp('time_point', 'yyyy-mm-dd hh24:mi:ss') MINUS SELECT * FROM tab; 其中将查询得 tab 表在 time_point 时点之后因 DELETE 及 UPDATE 操作修改的数据. 2.查看 INSERT 操作修…
浅谈oracle树状结构层级查询 oracle树状结构查询即层次递归查询,是sql语句经常用到的,在实际开发中组织结构实现及其层次化实现功能也是经常遇到的,虽然我是一个java程序开发者,我一直觉得只要精通数据库那么对于java开发你就成功了三分之一,本篇中主要介绍start with...connect by prior .order by .sys_connect_by_path. 浅谈oracle树状结构层级查询的博客地址是 浅谈oracle树状结构层级查询之start with ....…
[案例]Oracle报错ORA-16433非归档丢失redo无法启动的恢复过程 转惜纷飞 今天ML的群中女神和travel在纠结一个恢复的问题,11.2.0.3版本,非归档,大概是rm掉current的log,然后重建controlfille后恢复导致一系列问题,并最终出现ora-600 2662错误,虽然这个错误很常见,但是你发现推进scn也是无法open,感觉有点怪,远程了女神的电脑,操作不便,最后将文件压缩传过来,我在自己的vmware进行了恢复. 由于环境的差异,所以解压后我先进行ren…
在上一篇的blog中 做了下使用,在归档和非归档下,做数据插入http://blog.csdn.net/guogang83/article/details/9219479.结论是在非归档模式下表设置为nologging用insert /*+append*/速度最快.那为什么快呢,原理是什么?下面我们来一起做一个实验: SQL> create or replace view m_undo_redo as    select  v$statname.name,value    from v$myst…
oracle中的树状查询 工作中经常会遇到将数据库中的数据以树的形式展现的需求.以下我们来看一下该需求在Oracle中如何实现. 首先我们需要有一个树形的表结构(当然有时候会出现表结构不是典型的树形结构,而是多表存储,需要根据多表连接查询生成树) 一.树型表结构:节点ID  上级ID  节点名称 二.用法: select 节点ID,节点名称,levelfrom 表名connect by prior 节点ID=上级节点IDstart with 上级节点ID=节点值 说明:1.常见的树形结构为公司组…
这里.我们接着上一小节2.6留下的问题:假设要查询的字符串中含有"_"或"%".又该如何处理呢? 開始今天的学习. 2.7  怎样使用转义(escape)操作符 能够是用个转义(escape)keyword来完毕此任务. 为了进行练习,我们必须先创建一个暂时的表,之后再往该表中插入1行记录,其包括通配符. 可能您如今还可能十分不理解例2-13和例2-14的SQL语句.没有问题,您仅仅要照着输入就能够了. 例 2-13 SQL> CREATE TABLE dep…
在很多时候,我们会需要对一个表进行插入大量的数据,并且希望在尽可能短的时间内完成该工作,这里,和大家分享下我平时在做大量数据insert的一些经验. 前提:在做insert数据之前,如果是非生产环境,请将表的索引和约束去掉,待insert完成后再建索引和约束. 1. insert into tab1 select * from tab2;  commit; 这是最基础的insert语句,我们把tab2表中的数据insert到tab1表中.根据经验,千万级的数据可在1小时内完成.但是该方法产生的a…
问:有一张大表,其中按时间字段(TIME_ID)进行表分区(按季度分区),但是如果业务人员做跨季度的大批量数据的查询时,未能走TIME_ID分区索引,导致全表扫描.此种情况该如何处理? 示例解析: 1.我们根据oracle中sh用户自带的SALES表创建一个新的分区表(TIME_ID上建季度分区:插入一个新的字段CREATE_ID,上面不建分区),步骤如下: create table SALES_1998_part ( PROD_ID       NUMBER not null, CUST_ID…
Oracle单表的简单查询 查看表结构 desc emp; 查询所有列 Select * from emp; 查找所以部门编号(查指定的列) select deptnofrom emp; 查找编号不同的部门编号(去重) selectdistinct deptnofrom emp; 查找ename为SMITH的员工职位,工资,部门编号 select job,sal,deptnofrom emp t  where t.ename='SMITH'; 查找员工的年薪 NVL( string1, repl…
Oracle多表的简单查询 .多表查询 多表查询是指基于两个和两个以上的表或是视图的查询. 问题:显示雇员名,雇员工资及所在部门的名字[笛卡尔集]? select t.ename,t.sal,t1.dnamefrom emp t,dept t1where t.deptno=t1.deptno; 问题:显示部门号为10的部门名.员工名和工资? SELECT d.dname, e.ename, e.sal FROM emp e, dept d WHERE e.deptno = d.deptno an…
Oracle单表的复杂查询 select avg(sal),max(sal),deptnofrom empgroupby deptno; orderby deptno; 查询工资高于500或者是岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J? or job='manager')and enamelike'J%'; 按照部门号升序而雇员的工资降序排列 select *from emporderby deptnoasc , saldesc ; assum,enamefrom em…
oracle实现like多关键字查询: select * from contract_info tt where 1=1 and REGEXP_LIKE(tt.contract_name,'关键字1|关键字2')…
浅谈oracle树状结构层级查询 oracle树状结构查询即层次递归查询,是sql语句经常用到的,在实际开发中组织结构实现及其层次化实现功能也是经常遇到的,虽然我是一个java程序开发者,我一直觉得只要精通数据库那么对于java开发你就成功了三分之一,本篇中主要介绍start with...connect by prior .order by .sys_connect_by_path. 概要:树状结构通常由根节点.父节点.子节点和叶节点组成,简单来说,一张表中存在两个字段,dept_id,par…
Oracle递归查询,Oracle START WITH……CONNECT BY查询,Oracle树查询 ================================ ©Copyright 蕃薯耀 2018年5月14日 https://www.cnblogs.com/fanshuyao/ 说明: 现在表(CMM_CODE)中有一批树结构的数据,主键为CODE_ID,以字段PARENT_CODE_ID作为父结构关联,最顶层结构的PARENT_CODE_ID为空,数据结构例子如下: 专业设施名称…
Oracle中的SQL分页查询原理和方法详解 分析得不错! http://blog.csdn.net/anxpp/article/details/51534006…