写者要从oracle数据库导出一些长文本字段的数据,但效率不是太高,导出十多条数据需要2-3分钟,所以想对脚本进行一下性能分析,看脚本导出慢在了哪里,生成的图像文件如下
最后发现时间都花在了oracle查询fetchall函数上,所以后面是因为查询的sql没有使用索引的字段去查,会很慢,使用索引的字段去查,效率提升了 十几倍
这里使用的是 gprof2dot, 可以看到调用次数, 占用时间和百分比信息的图像,比较直观
安装
- mac
1 | brew install gprof2dot |
- Debian/Ubuntu users
1
apt-get install graphviz
生成图像文件
1 | python3 -m cProfile -o output.pstat test.py |
执行完,在脚本的目录就会生成图像文件了