测试两种oracle数据库导出方式的时间效率
昨天做了一个数据库导出的实验,主要用来测试exp命令的效率
创建一个文件 CalExpTime.bat,内容如下:
echo %time% >time.log
exp user/psw file=exp1.dmp
echo %time% >>time.log
echo %time% >>time.log
exp user/psw file=exp2.dmp direct=y
echo %time% >>time.log
双击运行该批处理文件。
最后生成的time.log文件内容如下:
22:24:12.82
23:12:12.20
23:12:12.23
23:34:12.12
可见
第一份导出命令exp user/psw file=exp1.dmp
耗时为:(23:12:12.20-22:24:12.82)=约48minute
第一份导出命令exp user/psw file=exp2.dmp direct=y
耗时为:(23:34:12.12-23:12:12.23)=约22minute
电脑配置:CUP P7350 双核2.0GHZ;
内存 2G
OS Windows XP SP3
数据文件大小:exp1.dmp:8725M
exp2.dmp 8775M
由此可以得出结论,在使用exp命令的时候,加上direct=y,可以大大提高导出速度。
相关文档:
||------- pl/sql 基础 -------||
pl/procedural language 过程语言
//创建表
SQL> create table mytest(
2 name varchar2(30),
3 pwd varchar2(30));
//创建过程
create procedure sp_pro1 is
create or replace procedure sp_pro1 is --如果存在即 ......
在oracle中存储过程或者视图等对象创建时,如果涉及到另外一个用户的表,即使你已经grant dba了,也不行,必须显式地赋予查询权限。否则,你会发现在pl/sql中可以执行语句,但是一旦放到create 中就告诉你权限不足。
grant select any table to user ......
1). 设置当前session是否对修改的数据进行自动提交 :SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}
SQL> set autocommit off
2).在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句 :SET ECHO {ON|OFF}
SQL> set echo on
3).是否显示当前sql语句查询或修改的行数
SQL> SET FEED[BACK] {6|n|O ......
INSERT INTO hydlsrs@remote_zzh
SELECT * from hydlsrs where zzh='2'
hydlsrs为表名 @remote_zzh为库名
select * from hydlsrs为另1库中表名,
不同库中相同表结构,可以跨库插入。用于
2地倒入表内容。 ......