Oracle数据库中,Import实用程序就是把Export卸出的数据恢复到数据库中,及对数据库进行故障恢复,要求时间较高。现在就减少Import性能时间作出几点改进。
一、 系统级别的改变
1?在重建数据库时尽可能增大DB_BLOCK_SIZ参数。块的大小越大,所需I/O循环的次数就越少。这种改变是***性的,因此在修改它的时候应考虑到各种可能的影响。
2?建立并使用一个大的rollback段,同时将其他rollback段关闭(offline)。一个rollback段大约需要***的表(table)的50%的大小就足够了。
3?在import性能完成之前将数据库置于NOARCHIVELOG模式。这将减少创建和管理archive日志的时间。
4?与rollback段一样,创建几个大的重做日志文件(redo log files),越大越好。关闭一些小的重做日志文件。重做日志文件越大,所需的日志切换的次数就越少。检查警告日志信息如
“Thread 1 cannot allocate new log,sequence 17,Checkpoint not complete”
这就意味着日志文件需要扩大或数量需增加。
5?如果可能,尽量将rollback段、表数据和重做日志文件分布在不同的硬盘上。这样可以减少I/O冲突的可能性。
二、 intr.ora参数的改变
1?将LOG_CHECKPOINT_INTERVAL的值置为大于重做日志文件的大小。这个值通常以操作系统的块大小来定义(UNIX系统大多是512字节)。这样可以将检查点checkpoint)减小到最少(仅在日志切换时执行)。
2?增大SORT_AREA_SIZE的值。这种增加取决于机器中其他活动进程的状况以及还有多少可用的空闲内存。我们可以试5-10次来寻找一个***值。若机器开始交换(swapping)及页面(paging)切换,说明值设置得太大。
三、 import选项改变
1?置COMMIT=N。这将导致import在每个对象(如table)结束之后提交(commit),而非缓冲区满提交。这就是我们为什么需要一个大的rollback段。
2?采用一个大的BUFFER值。这个值要视系统活动状况、数据库大小等情况而定。通常几兆字节就够了,但是若有足够的内存这个值还可更大些。同样,我们可以查看页面和交换的情况来确定这个值是否太大。这将减少import进程到文件中读取数据的次数(每次它将读取一个buffer大小的数据)。
3?置INDEXES=N。这将加快导入无索引表的速度。采用INDEXFILE选项,在数据导入完成后建立索引。建立索引时SORT_AREA_SIZE值要足够大。
以上就Oracle数据库Import性能如何改进发表了个人看法,要想了解的更多相关问题的解决方案,请留意51cto.com站上的相关论坛.
【编辑推荐】