很多人都没用过的轻量级Oracle数据库数据导出工具SQLLDR2——性能超赞
SQLLDR2 介绍
每周发表一篇数据库或大数据相关的帖子,敬请关注
1. 工具介绍
Sqluldr2(SQL * UnLoader 第二版)是灵活与强大的 Oracle 文本导出程序,已被大众使 用许多年了,有上千个国内外 DBA 在使用它或使用过它,并在使用的过程中提出了宝贵实 用的改进需求,在完善了众多真实客户的需求后,最终形成了现在的稳定版本。Oracle 有一 个工具叫 SQL*Loader(sqlldr)是用来将文本文件装载到数据库中的,而这个工具是用来将 Oracle 中的数据导出成文本的,因此取名为 SQL*UnLoader(sqluldr),而最后的 2 是因为第一 版是用 OCI 7 接口写的,而现在发布的是用 OCI 8 接口重写的,是第二代的意思。学会这样 的好工具,在遇到数据迁移需求时,可以让 DBA 轻松自在地完成任务。
1.1. 导出效率:
阿里巴巴(Alibaba)集团的 DBA 几年前就开始用 sqluldr 从生产系统中导出巨量数据给数据仓库分析,并在真实应用环境下 创下了我所见过的文本导出速度的最高记录, 总共用了 595 秒钟导出了 171 135 273 条记录, 平均每秒 287622 条记录。
1.2. 下载地址:
2. 工具安装
2.1. 下载安装包并解压
2.2. 配置环境变量
要运行Sqluldr2必须要安装Oracle的客户端(Oracle客户端的安装方法不在这里讨论),并配置LD_LIBRARY_PATH环境变量.
export LD_LIBRARY_PATH=/opt/oracle/product/11.2.0/dbhome_1/lib:$LD_LIBRARY_PATH
将其中的/opt/oracle/product/11.2.0/dbhome_1/lib替换成你自己的客户端安装目录.
2.3. 执行实例
2.3.1. 查看帮助
选项 格式 作用
query select 指定一个SQL 语句,通常用双引号括直来。
sql 文件名 指定包括SQL 语句的文本文件名。
field 分隔符 指定字段分隔符,默认为逗号
record 分隔符 指定记录分隔符,默认为回车换行,Windows 下的换行
2.3.2. 导出一个表的全部数据
1258万条数据,导出只需要100秒左右,效率还是可以的。
2.3.3. 导出一个表的部分数据
2.3.4. 导出时指定列分隔符
在上面导出时导出的文件内容如下
可以看出列分隔符为“,”,你也可以手动指定列分隔符.
通过field属性手动指定列分隔符.同理你也可以通过record属性指定行分隔符.
2.3.5. 指定导出文件的风格
通过text属于指定导出文件的风格
可以看出在列类型为varchar2和date的列的导出数据上分别加了双引号.
2.3.6. 优化
array 数字 指定 Array Fetch 的大小
read 数字 Oracle 一次读的最大块数
sort 数字(单位:MB) 指定排序区的大小
hash 数字(单位:MB) 指定 Hash 区的大小
serial yes 指定当全表扫描时用 direct path read
通过指定array的大小为20000后,发现导出的速度相比之前快了很多,1258万条数据只用了17秒.其余的几个属性请自己动手验证.
很多人都没用过的轻量级Oracle数据库数据导出工具SQLLDR2——性能超赞的更多相关文章
- oracle数据库数据导出和导入
oracle的客户端里面的bin下面有两个可执行文件,名称分别为exp.exe和imp.exe. 他俩的用途就是导出和导入数据用的. 全库 导出:exp 用户名/密码@数据库名 full=y file ...
- 上传伪技术~很多人都以为判断了后缀,判断了ContentType,判断了头文件就真的安全了。是吗?
今天群里有人聊图片上传,简单说下自己的经验(大牛勿喷) 0.如果你的方法里面是有指定路径的,记得一定要过滤../,比如你把 aa文件夹设置了权限,一些类似于exe,asp,php之类的文件不能执行,那 ...
- 很多人都在埋怨没有遇到好的团队,但好的团队不可能凭空出现,一流的团队不能仅靠团队成员努力,作为Leader,要有可行的规划,并坚定地执行、时势地调整(转)
<西游记>中的唐僧团队历经千难万险,终于求得真经,目标明确.分工合理为这支队伍最终走向成功奠定了基础.唐僧从一开始,就为这个团队设定了西天取经的目标,虽然经历各种挫折与磨难,但目标从未动摇 ...
- [转帖](区块链补习班)ERC20很多人都听过,但ERC是什么你真的了解吗?
(区块链补习班)ERC20很多人都听过,但ERC是什么你真的了解吗? http://baijiahao.baidu.com/s?id=1600948969290990883&wfr=spide ...
- 听说特斯拉花了4个月研发出新ERP,然后很多人都疯了
欢迎关注微信公众号:sap_gui (ERP咨询顾问之家) 最近这件事儿在SAP圈里炒的挺火的,最主要是因为这几个关键词: 放弃SAP.4个月.自研ERP: 这则新闻一出来,很多人都兴高采烈,都要疯了 ...
- oracle数据库导入导出命令!(转)
oracle数据库导入导出命令! Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 大多情况都可以用Oracle数据导入导出完成 ...
- cmd导出oracle数据库数据
今天弄了下oracle数据库导入导出命令exp,imp 首先这个命令是在cmd直接执行,不是sqlplus登录后再执行,见下图: 再次,注意结尾不能有分号(;): exp scott/scott@su ...
- oracle数据库数据导入导出步骤(入门)
oracle数据库数据导入导出步骤(入门) 说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp ...
- Oracle数据库使用Analyze提升sql性能
Oracle数据库使用Analyze提升sql性能 如果你不使用analyze完成sql优化,将意味着:你拒绝使用数据库的查询优化器,也失去了使用优化连接的机会.假设你创建了一张拥有100万条记录的临 ...
随机推荐
- JavaScript常用方法(工具类的封装)
日期格式化 function formatDateTime(timeStamp) { var date = new Date(); date.setTime(timeStamp); var y = d ...
- 【JavaScript】获取项目路径地址
在jsp页面顶上面定义 <% String path = request.getContextPath(); String basePath = request.getScheme() + &q ...
- 题解 P1469 【找筷子】
这题真是水 咳咳.. 基本思路:桶排 但是可以剪枝. 剪枝方法: 好几种,可以用set(集合),可以用stack(栈), 也可以像我一样的蒟蒻最大最小值...... 但是作者的毒瘤数据应该不会放过我们 ...
- QT 基本图形绘制
QT 基本图形绘制 1.告诉绘制引擎一些东西 QPainter::Antialiasing 在可能的情况下,反锯齿 QPainter::TextAntialiasing 在可能的情况下,文 ...
- [洛谷P5137]polynomial
题目大意:求:$$\sum\limits_{i=0}^na^{n-i}b^i\pmod{p}$$$T(T\leqslant10^5)$组数据,$a,b,n,p\leqslant10^{18}$ 题解 ...
- 常州day7
Task1 蛤布斯有一个序列,初始为空.它依次将 1-n 插入序列,其中 i 插到当前第 ai 个数的右边 (ai=0 表示插到序列最左边).它希望你帮 它求出最终序列. 对于 100%的数据,n&l ...
- 洛谷 P2195 HXY造公园 解题报告
P2195 HXY造公园 题目描述 现在有一个现成的公园,有\(n\)个休息点和\(m\)条双向边连接两个休息点.众所周知,\(HXY\)是一个\(SXBK\)的强迫症患者,所以她打算施展魔法来改造公 ...
- 【bzoj3672】购票
Portal -->bzoj3672 Solution 天知道我是怎么调完的qwq调到天昏地暗系列.. 不管这么多,先尝试列一个最简单的状态转移方程 用\(f[i]\)表示\(i\)点到\( ...
- 实现了一下Berlekamp-Massey
//from https://www.cnblogs.com/TSHugh/p/9265155.html //在FP中求固定项数数列的线性递推式 //此递推式严格符合数学定义,故可能在末尾出现一些看起 ...
- Codeforces Round #384 (Div. 2) A B C D dfs序+求两个不相交区间 最大权值和
A. Vladik and flights time limit per test 2 seconds memory limit per test 256 megabytes input standa ...