ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

spool技术的使用

2022-06-27 16:31:49  阅读:128  来源: 互联网

标签:12 20 1981 CLERK 30 技术 spool 使用 7698


当我们在生产环境中,需要将表中的数据导出到文件中,如果数量比较大的时候,我们使用代码的方式会比较慢,尤其是使用mybatis的方式,及其的慢,即使使用jdbcTemplate的方式也会很慢。在一开始我使用的是mybatis的方式,这种方式,导出20000条数据大概耗时1分钟,照这样算下来,我们的数据库那张表,数据量达到了1500多万,也就是说,导完一共需要750分钟,也就是说,一共需要12个多小时,这显然是不行的。这个时候,我们可以使用Oracle的spool技术,来进行表数据的导出,使用这种方式,我亲自测试了一下,造了1500万条数据,耗时1723.717秒,最终导出的文件大小是:2414.823M,可见速度就非常快了。

学习记录:

--test.sql 脚本

set feedback off
set heading off
set verify off
set trimspool off
set trimout on
set longsize 1000
set pagesize 0
set newpage none
set trimout off
set termout off
spool d:\emp_yyy_20220627.dat
SELECT
EMPNO || '|+|' ||
ENAME || '|+|' ||
JOB || '|+|' ||
MGR || '|+|' ||
TO_CHAR(HIREDATE,'YYYY-MM-DD') || '|+|' ||
SAL || '|+|' ||
COMM || '|+|' ||
DEPTNO || '|+|'
FROM EMP;
spool off
exit

最终会在d盘下生成emp_yyy_20220627.dat数据文件,打开可见:

1|+|ZYQ|+|CLERK|+|7902|+|1980-12-18|+|801|+||+|20|+|
2|+|ZYQ|+|CLERK|+|7902|+|1980-12-17|+|800|+||+|20|+|
7369|+|SMITH|+|CLERK|+|7902|+|1980-12-17|+|800|+||+|20|+|
7499|+|ALLEN|+|SALESMAN|+|7698|+|1981-02-20|+|1600|+|300|+|30|+|
7521|+|WARD|+|SALESMAN|+|7698|+|1981-02-22|+|1250|+|500|+|30|+|
7566|+|JONES|+|MANAGER|+|7839|+|1981-04-02|+|2975|+||+|20|+|
7654|+|MARTIN|+|SALESMAN|+|7698|+|1981-09-28|+|1250|+|1400|+|30|+|
7698|+|BLAKE|+|MANAGER|+|7839|+|1981-05-01|+|2850|+||+|30|+|
7782|+|CLARK|+|MANAGER|+|7839|+|1981-06-09|+|2450|+||+|10|+|
7788|+|SCOTT|+|ANALYST|+|7566|+|1987-04-19|+|3000|+||+|20|+|
7839|+|KING|+|PRESIDENT|+||+|1981-11-17|+|5000|+||+|10|+|
7844|+|TURNER|+|SALESMAN|+|7698|+|1981-09-08|+|1500|+|0|+|30|+|
7876|+|ADAMS|+|CLERK|+|7788|+|1987-05-23|+|1100|+||+|20|+|
7900|+|JAMES|+|CLERK|+|7698|+|1981-12-03|+|950|+||+|30|+|
7902|+|FORD|+|ANALYST|+|7566|+|1981-12-03|+|3000|+||+|20|+|
7934|+|MILLER|+|CLERK|+|7782|+|1982-01-23|+|1300|+||+|10|+|

 

标签:12,20,1981,CLERK,30,技术,spool,使用,7698
来源: https://www.cnblogs.com/dongyaotou/p/16416545.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有