问题描述:
通过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