python oracle数据库多条sql执行_python实现一次性封装多条sql语句(begin end)

本文介绍了如何使用Python结合begin-end语法批量执行Oracle数据库的多条SQL语句,以优化模型运行时间。通过一次性提交SQL,减少了连接、查询和数据获取的时间,实现了性能提升。同时,文章提及了遇到的唯一约束冲突问题及其解决方案,并提醒在PostgreSQL中使用%s占位符时需加引号。
摘要由CSDN通过智能技术生成

python封装利用begin end执行多条sql

因为业务需求,优化模型运行时间。考虑到sql语句每一次执行都要建立连接,查询,获取数据耗时过多。就想到将sql一起提交上去运行,能够节省很多时间。原本1.6-2.5秒耗时的sql语句经过修改后时间降到0.3-0.6秒,感觉性能提升挺好的。

当然还有一种想法,如果有python框架的orm可能会更快,相比来说耗时基本看不到了吧,这只是我的猜想,仅仅为了优化一个模型写一个框架的话 代码可能需要改的比较多,自我感觉付出和收获不一定会成正比,当然以后有时间可以试试。

这次优化基本代码逻辑没有动,利用了begin end进行sql整合。

公司用的是oracle,之前没用过但是感觉和mysql基本类似,如果是mysql的话该方法也可用

sql_str = ‘begin\n'

sql_str += ‘这里时需要执行的sql语句'

sql_str += ‘\ncommit;end;'

中间sql有多少条无所谓,看了一下运行时间感觉 我的一千行sql耗时 几乎就是这一千行里面耗时最长那个时间。是异步完成还是什么这个就不是很清楚了,主要是一次建立连接,省去网络传输数据和请求数据库的过程

网上好多begin end都是在可视化工具中的sql执行的,并不能在command中执行,这就意味中我们代码中封装的语句没有卵用,还好没放弃当时就研究了一下找到了解决办法

在end 提交一下就ok了,如果在command中运行一直未结束的话加一个 / 斜线就ok了

本次内容就此结束,下面是一些题外话。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值