博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Oracle] 常用工具集之 - SQL*Loader
阅读量:7052 次
发布时间:2019-06-28

本文共 737 字,大约阅读时间需要 2 分钟。

SQL*Loader原理

SQL*Loader是Oracle提供的用于数据加载的一种工具,它比较适合业务分析类型数据库(数据仓库),能处理多种格式的平面文件,批量数据装载比传统的数据插入效率更高。其示意图如下:

控制文件:用于控制数据导入的行为方式的文件(最重要的文件)。

参数文件(可选)

数据文件:放置源数据的平面文件

错误文件:在数据加载时,把无法正确加载的数据放入错误文件中(比如数据格式问题、数据类型问题等)

丢弃文件(可选):有些数据,虽然数据格式、数据类型没有问题,但它被逻辑条件过滤掉了(在控制文件中设置),会被放入丢失文件

日志文件:记录SQL*Loader的数据加载过程

直接路径加载

在SQL*Loader里,为了提高性能,一般采用直接路径加载(设置Direct = TRUE)。

Oracle提供两种类型的插入语句:常规插入(conventional insert)和直接路径插入(direct-path insert),直接路径插入以牺牲部分功能为代价,换取高效加载大量数据。

直接路径加载把数据直接插入到要修改的段的高水位(HWM)以上,从而生成了最少量的undo(只生成数据字典的undo,不生成块中数据的undo),且不通过高速缓存(SGA),因此它的性能比常规插入要好。

直接路径加载的限制有:

1)一张表同时只能有一个直接路径插入,因此不适合小数据量的插入,只适合大批量的数据加载;
2)在HWM下的空闲空间不会被利用;
3)一张表在做直接路径插入的同时,同一会话不能对其做任何操作(select都不可以);
4)只有insert inot ... select ... 语句、merge语句和使用OCI直接路径接口的应用程序才可以使用。

 

你可能感兴趣的文章
15年编程生涯,资深架构师总结的7条经验
查看>>
第三节课作业
查看>>
最长回文子串问题
查看>>
ssh客户端及基于key登陆
查看>>
echo命令
查看>>
图形语言 Kgo
查看>>
兄弟连第10节课
查看>>
调整Virtual Box硬盘大小
查看>>
case 格式
查看>>
Windows下Apache服务器中自动配置二级子域名
查看>>
【Tomcat】日常遇到的Tomcat报错及解决方法
查看>>
Transform Map - Ignore Row if any fields are empty
查看>>
SVG绘制loading效果
查看>>
在kubernets中搭建jenkins服务
查看>>
iEclipse-不只是Eclipse的开发者社区
查看>>
Oracle个人的一些记录
查看>>
20.分屏查看命令 less命令
查看>>
感谢付费客户不覺流年似水(271558528) 对C#ASP.NET通用权限管理组件的改进意见,已修正...
查看>>
MySQL5.6.17学习笔记(四)复合分区及分区管理
查看>>
android 让 TextView 自带滚动条
查看>>