天天看点

SQL*Loader 笔记 (二) 性能优化 2014

最近客户有个测试项目,需要将大量的文本文件用sqlloder加载到oracle数据库中。特此做出如下实验,演练一下sqlloader的几个重要参数。

主要参考官方文档上关于redo产生的控制

关闭归档日志模式

关闭所有实例

查看sqlloader所需的文件及大小

控制文件

数据文件

观察当前的log序列号

在oracle用户下执行sqlloader,参数silent=all 不输出屏幕信息

查看日志输出

查看执行sqlloader后log的变化,测试环境没有其他应用,可以认为log的变化全部来自于sqlloder加载数据产生。

本机是rac双节点环境,sqlloader在节点一的服务器上执行,可以看出日志的序列从刚才的133,132变化到了159,158。 节点二的日志不发生变化。

下面开始优化sqlloader

一,优化:直接路径加载

虽然直接加载的方式不经过sql引擎,不会产生redo和undo,但是我们看到还是会有微乎其微的日志增长。

二,优化:nologging

日志序列已经不再变化了,可是并没有使速度变得更快,反而慢了5秒

三,优化:unrecoverable

四,优化 — parallel

实验总结:

0,如果是测试环境做数据加载,一定要先关闭归档日志(alter database no archivelog)。如果归档日志不关闭,后面的所有优化都没有效果。

1, sqlloder的direct 加载方式效果最突出。

2,设置表为nologing虽然可以彻底避免日志的生成,但是优化的效果已经不明显了。

3,parallel需要在同时执行多个控制文件,访问多个数据文件是才会有效果。例如:

继续阅读