- 浏览: 54756 次
- 性别:
- 来自: 北京
最近访客 更多访客>>
最新评论
-
yvonxiao:
这个的确好用,我记得我以前是自己写了个存储过程来解决这种递归问 ...
Oracle Start With Connect By
有这样的一类需求,快速复制一张表,而这张表的数据量又非常的大。比方说本来是分区表,要把它重新变成非分区表,怎么能够快速的完成这样的操作呢?我下面给出2种大致的方法:
第一,就是利用CTAS方式来创建一张新表,当然要想加快速度,在数据库不是force logging的前提下,可以使用nologging方式来创建表
SQL> create table auction_auctions_bak
2 tablespace tbs_taobao
3 nologging
4 as
5 select * from auction_auctions;
Table created.
SQL> select count(*) from auction_auctions;
COUNT(*)
----------
4179779
SQL> select count(*) from auction_auctions_bak;
COUNT(*)
----------
4179779
在建立完成表以后,要注意将表的属性重新变成logging:
SQL> select logging from tabs where table_name='AUCTION_AUCTIONS_BAK';
LOG
---
NO
SQL> alter table auction_auctions_bak logging;
Table altered.
当然也可以这样:CREATE TABLE … AS SELECT .. WHERE 1=2;然后使用 INSERT /*+ APPEND */ INTO .. SELECT …。
最后将表名更改过来,建立一下新的索引,然后就可以了。
SQL> drop table auction_auctions;
Table dropped.
SQL> rename auction_auctions_bak to auction_auctions;
Table renamed.
第二,在原理上,它其实和第一种方式差不多,就是阻止数据库记录日志来加快速度,大概过程如下:
1、exp出原表(建议compress=n)
2、drop 原表
3、以nologging的方式,新建与原表同名的空表
4、imp原表至空表中,注意要把ignore设置为y
5、更改新表的属性为logging
我这次分别都对两种方式做了测试,结果第二种方式远远快于第一种方式,大概是其10倍的速度。注意以上两种方式都是在数据库没有force logging的前提下完成的。如果数据库被force logging了,那么怎样才能加快复制速度,这个大家可以说说。
第一,就是利用CTAS方式来创建一张新表,当然要想加快速度,在数据库不是force logging的前提下,可以使用nologging方式来创建表
SQL> create table auction_auctions_bak
2 tablespace tbs_taobao
3 nologging
4 as
5 select * from auction_auctions;
Table created.
SQL> select count(*) from auction_auctions;
COUNT(*)
----------
4179779
SQL> select count(*) from auction_auctions_bak;
COUNT(*)
----------
4179779
在建立完成表以后,要注意将表的属性重新变成logging:
SQL> select logging from tabs where table_name='AUCTION_AUCTIONS_BAK';
LOG
---
NO
SQL> alter table auction_auctions_bak logging;
Table altered.
当然也可以这样:CREATE TABLE … AS SELECT .. WHERE 1=2;然后使用 INSERT /*+ APPEND */ INTO .. SELECT …。
最后将表名更改过来,建立一下新的索引,然后就可以了。
SQL> drop table auction_auctions;
Table dropped.
SQL> rename auction_auctions_bak to auction_auctions;
Table renamed.
第二,在原理上,它其实和第一种方式差不多,就是阻止数据库记录日志来加快速度,大概过程如下:
1、exp出原表(建议compress=n)
2、drop 原表
3、以nologging的方式,新建与原表同名的空表
4、imp原表至空表中,注意要把ignore设置为y
5、更改新表的属性为logging
我这次分别都对两种方式做了测试,结果第二种方式远远快于第一种方式,大概是其10倍的速度。注意以上两种方式都是在数据库没有force logging的前提下完成的。如果数据库被force logging了,那么怎样才能加快复制速度,这个大家可以说说。
发表评论
-
oracle 命令
2009-02-05 20:30 937一、ORACLE的启动和关闭 ... -
通过dbms_flashback找回误删除的数据收藏
2009-01-21 11:35 1323在使用DBMS_FLASHBACK时要首先注意以下几个事项: ... -
优化Oracle数据库性能收藏
2009-01-21 11:35 831优化策略 为了保 ... -
Oracle Start With Connect By
2009-01-21 11:33 1533Start With Connect By 是用来实现在一个 ... -
Oracle 表空间操作收藏
2009-01-21 11:32 974创建表空间: 1、递增 ... -
移动数据文件收藏
2009-01-21 11:32 696移动数据文件: 1、首先使要移动数据文件的表空间离线. ... -
Oracle 死锁会话处理收藏
2009-01-21 11:31 1095--查询所有的死锁: SELECT * FROM V$LOCK ... -
Oracle 9i 打开autotrace on 查看执行计划收藏
2009-01-21 11:31 12951.创建表,通过utlxplan脚本 SQL> @? ... -
如何启用sqlplus的AutoTrace功能收藏
2009-01-21 11:31 811通过以下方法可以把Autotrace的权限授予Everyone ... -
user和schema的区别:
2009-01-21 11:30 972说穿了其实user是控制权限的,而schema是个容器,非所有 ... -
解决Oracle数据文件和日志文件丢失的问题收藏
2009-01-21 11:29 2032今天不小心误删除了数据库的数据文件和日志文件,在启动数据库时报 ... -
Oracle表段中的高水位线HWM收藏
2009-01-21 11:28 2558在Oracle数据的存储中, ... -
深入了解oracle的高水位(HWM)收藏
2009-01-21 11:26 2240说到HWM,我们首先要简要的谈谈ORACLE的逻辑存储管理.我 ... -
ORACLE 日志文件相关查询收藏
2009-01-21 11:25 11571.查询系统使用的是哪一组日志文件: select * fro ... -
ORACLE热备份恢复手册收藏
2009-01-21 11:22 2278概要 1.1. 本文的目的 为了模拟测试oracle热备份的 ... -
(转)windows命令行下启动oracle
2009-01-21 09:56 1468--总结启动命令如下: lsnrctl [start|stop ... -
小议分析函数中排序对结果的影响(一)
2009-01-12 13:24 834分析函数中经常会包括O ... -
ORACLE10g新特性——全局HASH分区索引
2009-01-12 13:23 1711在10g以前,Oracle的全局索引分区方法只有一种,即范围分 ... -
深入认识Oracle Supplemental logging
2008-12-22 18:35 3110对于有过逻辑standby,streams搭建体验的朋友,肯定 ... -
深入分析Oracle数据库日志文件
2008-12-22 15:19 953深入分析Oracle数据库日志文件 作者:程永新 发文时间: ...
相关推荐
excel如何把多张工作表内容快速复制到一张表
快速复制 快速复制软件 快速复制软件 快速复制
部分程序如下:利用VB语句调用ACCESS数据库,将一张表的全部信息复制到另一张表中 Private Sub Command1_Click() Dim conn As ADODB.Connection Dim rs As ADODB.Recordset Dim strSql As String Set conn = ...
tool快速复制FastCopy.rar 这个工具最适合拷贝大文件,速度相当快的,比微软的快好多倍
sql server 从一个数据库复制一张表到另外一个数据库
这个软件可以最快速的复制大文件,给常复制大文件的朋友们有福了 呵呵
快速复制(单文件版) 快速复制(单文件版) 快速复制(单文件版)
怎么最快地复制一张表?
快速复制,此程序比传统复制时间缩短将近80%左右,特别是复制容量为G以上的大容量文件、软件...
41怎么最快地复制一张表?.pptx
速度超快的复制文件,基本不占用CPU,下载比较一下就知道了。
快速复制工具 FastCopy 2.11_汉化_x64 加快复制
快速复制软件,提高复制速度, FastCopy 是 Windows 平台上最快的文件复制、删除软件。 【汉化说明】 为界面美观,汉化时部分控件做了一些调整,但最终版权归软件原作者所有。 【更新说明】 V1.99 r4 1.当大小...
一款快速复制的小软件,可单文件或文件夹复制
快速复制文件路径的工具,亲自尝试过 非常好用,保存待用
文件快速复制工具,采用缓存技术,缓存越大,复制速度越快,对大文件非常有效
大漠驼铃快速文件复制是大漠驼铃软件工作室开发的快速文件复制工具,方便在多个路径中复制文件到一个指定的文件夹中,只要选择好保存文件的位置,然后将需要复制的文件拖入中间的文件列表框中。软件自动进行复制,不...
能够快速复制文件,主要运用于大文件,多文件的复制。而且能够筛选、过滤……
一个可以快速复制的工具,面板上有三个编辑框,可以提前填写需要复制的信息,点击复制即可快速复制到剪贴板。此工具适合抢购或者重复复制多个相同内容。
主要给大家介绍了关于如何利用Java实现复制Excel工作表功能的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧