标签:
1、说明:
这里假设一种应用场景!
假设,银行系统中有大量的数据需要及时备份,如何才能快速高效呢!
条件需求:
(1)、不能设置同步锁(设置的会影响银行正常业务进行!使得银行系统处于维护状态,这是不允许的!)
(2)、尽量高效,因为银行中的数据是海量的,一般的SQL语句的效率不能够满足高性能!
(3)......
2、解决方案:
1、备份结果集成一个新的备份表:
说明:这里备份的是一个结果集!
SQL语句:
create table emp_bak
(
select * from emp
);
2、如何备份一个空表结构:
SQL语句:
create table emp_bak
(
select * from emp
where 1 <> 1
);
3、第一次备份之后,若需要再次备份数据:
SQL语句:
insert into emp_bak
(
select * from emp where rownum<=10
);
4、如何判断接下来的备份是不是第一次备份数据!
说明:
为甚要做这种判断,很简单,因为第一次备份数据,是涵盖了创建备份的数据表的操做,之后的备份是一种新增操作,是不同的2中类型操做!所以需要区分!
SQL语句:(这里我们需要查询视图,获取视图中备份数据的用户的对象,再去该用户下查询用户下的表!)
1、select * from user_tables; ----查询用户视图,在查到的数据结果集中找到需要验证的用户
2、select * from emp_bak; ---去查询这个用户下的数据(也就是用户全下的表:),如果结果集中是空的(说明没有备份表的存在),那么就说明,以前没有备份数据表
5、如何一条insert语句插入多条数据!
说明:需要使用union关键字
SQL语句:
insert into emp
select ‘s001‘,11‘Jason‘ from dual
union
select ‘s002‘,12,‘Jack‘ from dual
union
select ‘s003‘,13,‘Rose‘ from dual;
执行以上的SQL语句就可以一次性添加三条数据!
数据库学习(整理)----6--Oracle如何快速备份和多次备份数表数据
标签:
原文地址:http://www.cnblogs.com/newwind/p/5674998.html