文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发Oracle帮你快速掌握Oracle数据库中的Copy命令
精品推荐
特别推荐
·常用数据库比较
·ODBC API常用函数诠释
·提高ORACLE数据库的查询统计速度
·细化解析:Oracle使用的hints调整机制
·解析Oracle/Oracle Forms 的多用途代码
·从Oracle的FORM中调用REPORT的实用技巧
·Oracle SQL精妙SQL语句讲解
·ORACLE学习笔记--性能优化四
·ORACLE常用傻瓜问题1000问
·ORACLE常见错误代码的分析与解决之二
·深刻理解Oracle数据库的启动和关闭
·监控Oracle数据库的常用shell脚本
·Oracle在Solaris下的性能与调整简介
·通俗解说ORACLE
·数据库安全性策略
热点TOP10
·详细介绍ORACLE sqlplus命令
·ORACLE常用傻瓜问题1000问
·我的oracle笔记四(DBA管理)
·Oracle SQL精妙SQL语句讲解
·Oracle Tuning (Oracle 性能调整)的一些总结
·我的oracle笔记一(sql语句方面)
·程序员如何掌握计算机英语
·用正则表达式函数验证身份证号码合法性
·oracle数据库 exp/imp命令详解
·性能分析工具的使用
·ORACLE UPDATE 语句语法与性能分析看法
·在Solaris 10 X86上安装Oracle 10g RAC详解 (1)
·ORA-01092: ORACLE 例程终止。强行断开连接
·VMware下RedHat安装Oracle 9i RAC全攻略
·监控Oracle数据库的常用shell脚本
·手工创建oracle数据库
·常用数据库比较
·PL/Sql循序渐进全面学习教程
·在Solaris 10 X86上安装Oracle 10g RAC详解 (2)
·ORACLE学习笔记--性能优化一

帮你快速掌握Oracle数据库中的Copy命令

日期:2007年7月8日 作者: 查看:[大字体 中字体 小字体]


SQL*Plus的Copy命令

在数据表间复制数据是Oracle DBA经常面对的任务之一,Oracle为这一任务提供了多种解决方案,SQL*Plus Copy 命令便是其中之一。SQL*Plus Copy 命令通过SQL*Net在不同的表(同一服务器或是不同服务器)之间复制数据或移动数据。

 在实际运行环境中若能恰当地选择使用SQL*Plus Copy 命令可以有效地提高数据复制的性能。

 下面将简要介绍SQL*Plus Copy 命令使用,并在性能方面与其他两种方案进行对比,力求能提供一个使用Copy 命令的方案参考。

语法及使用说明

语法:

下面我们来看一下SQL*Copy 命令的语法及使用说明。

在解释SQL*Plus Copy 命令的语法之前,我们必须要明确SQL*Plus Copy 命令不是一个方法或是函数,也不是一个SQL语句,它是一个命令(command),当然这个命令必须在SQL*Plus里运行。

SQL*Plus Copy 命令的语法:

COPY {FROM database  TO database 
 FROM database TO database} 
{APPENDCREATEINSERTREPLACE} 
destination_table [(column, column, column, ...)]
USING query

我们分部分来解释一下:

COPY – 这个不太需要解释,主命令,声明要执行COPY操作。

From Database – 源数据库。

To Database – 目标数据库。

此处注意花括号中有三种可选的写法(以””隔开),如果源数据表和目标数据表在同一个Schema中,则可以只写From Database,也可以只写To Database,当然还可以是第三种写法,把From Database和To Database写全。但如果源数据表和目标数据表不在同一个Schema中,则必须用第三种写法,即把From Database和To Database都写全,格式相同:USERID/PASSWORD@SID。

{APPENDCREATEINSERTREPLACE} – 声明操作数据的方式,下面分别解释一下:

Append – 向已有的目标表中追加记录,如果目标表不存在,自动创建,这种情况下和Create等效。

Create – 创建目标表并且向其中追加记录,如果目标表已经存在,则会返回错误。

Insert – 向已有的目标表中插入记录,与Append不同的是,如果目标表不存在,不自动创建而是返回错误。

Replace – 用查询出来的数据覆盖已有的目标表中的数据,如果目标表不存在,自动创建。

destination_table – 目标表的名字

[(column, column, column, ...)] – 可以指定目标表中列的名字,如果不指定,则自动使用Query中的列名。

USING query – 查询语句,交流的数据来自这儿。

使用范例:

下面我们通过几个例子来看一下SQL*Plus Copy 命令的使用:

在同一个服务器的同一个Schema中复制数据:

同时指定From database和To database:

SQL> copy from scott/tiger@lsj to scott/tiger@lsj create dept1 using select * from dept;
只指定From Database 
SQL> copy from scott/tiger@lsj create dept2 using select * from dept;
只指定To Database 
SQL> copy to scott/tiger@lsj create dept3 using select * from dept;

在同一个服务器的不同Schema中复制数据:(这种情况下必须同时指定From Database和To Database)

SQL> copy from scott/tiger@lsj to lsjdemo/lsjdemo@lsj 
create dept using select * from dept;

注意这种情况下,using select * from dept 中并不需要使用scott.demp的形式。

在不同的服务器间复制数据:

SQL> conn lsj/lsj@sunserve
已连接。
SQL> copy from scott/tiger@lsj to 
lsj/lsj@sunserve create dept using select * from dept;

性能实验结果:

实验数据:
记录数:5,082,500
数据量:504M
实验结果

方案-------------------执行时间(秒) ----Undo(M) ----Redo(M)
Copy command -----------520.51-------------0 -------- 592
Insert into…select …--- 631.64 ----------345 -------1720
Create Table…------- 244.79 -----------0 ------------515

总结

Create Table…as select…是最快的,而且生成的Undo和Redo信息最少,所以只要可能,请尽量使用这种方案。但这种方案有一定的限制,即目标表必须是不存在的,不能用它向已有的目标表中追加记录。

Insert into … select … 是最慢的,而且生成最多的Undo和Redo信息,对I/O的压力最大,优势在于大家对它比较熟悉,使用起来比较简单,适合于处理少量的数据,若要处理大量的数据,不推荐使用这种方案。

Copy Command可以处理Create Table不能处理的情况,即向已有的数据表中追加记录,相对于insert来说,效率更高一些,生成更少的Redo信息,不生成Undo信息,所以在执行大量的数据追加时,推荐使用Copy Command命令。

(出处:清风网络学院






上一篇:MySQL数据库中SELECT语句快速精细掌握

下一篇:利用MySQL加密函数保护Web网站敏感数据

帮你快速掌握Oracle数据库中的Copy命令 相关文章:
·初级网管或黑客必需撑握的8个DOS命令
·AIX 5L 学习大纲/简易教程(2)(未经许可,请勿COPY)
·DOS命令字典
·详细介绍ORACLE sqlplus命令
·ping 命令的用法大全
·ORACLE常用傻瓜问题1000问
·基础知识 初级黑客安全技术命令详解
·Linux常用命令详解
·我的oracle笔记四(DBA管理)
·DEBUG命令大全
帮你快速掌握Oracle数据库中的Copy命令 相关软件:
·保证你快速致富的七个步骤
·ACCESS数据库教程 北京大学的ACCESS教程
·Oracle v8.1.7
·爆出网站数据库路径
·逐步精通数据库 sql server 视频教程
·快速抠图 V1.58
·shell编程和unix命令
·Linux 系统命令及其使用详解(大全)
·SQL/MYSQL/数据库教程专栏
·KillCopy(文件移动复制增强)绿色汉化版 V2.85

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot