问题描述:
通过SQLPLUS查询数据集并导出到Excel文件,发现速度非常慢(50分钟只导出10M数据,共17万行,每行两列)。
然后,百度了一下解决方案,运气不错,很快就找到了一篇文章:https://www.2cto.com/database/201311/254469.html
然后,将arraysize设置为更大值,发现两分钟就能导出数据,比Toad还快了很多,大大超过我的预期!
解决方案:
set arraysize 5000
默认值为15,最大可设置为5000。不同arraysize对导出速度的影响见如下对比(基于我的实测数据):
| Arraysize | 用时(分钟) | 导出行数 | 每分钟导出行数 |
| 15 | 49 | 10849 | 221.41 |
| 300 | 4 | 9000 | 2250 |
| 5000 | 2 | 2451 | 12290.5 |
简单算算即知,通过将Arraysize设置为最大值5000,相比默认值15,每分钟导出行数足足提升了55倍!简直是天壤之别!
参考文章:
https://docs.oracle.com/cd/E11882_01/server.112/e16604/apa.htm#SQPUG141

通过调整arraysize参数,SQLPlus导出数据至Excel的速度显著提升,从49分钟缩短至2分钟,效率提升55倍。实测数据显示,当arraysize设为5000时,每分钟导出的数据行数达到12290.5行,远超默认值15的表现。
的速度的方法(set arraysize 5000)&spm=1001.2101.3001.5002&articleId=84143789&d=1&t=3&u=3e21ecd26a894925a9ee6edb5c28da3b)

被折叠的 条评论
为什么被折叠?



