gpt4 book ai didi

python - 重用游标与创建新游标的权衡是什么?

转载 作者:太空狗 更新时间:2023-10-29 17:19:37 24 4
gpt4 key购买 nike

在 cx_Oracle(或一般的 Oracle)中,是否可以为每个查询分配一个游标,或者在多个查询中重用一个游标。

def getSomeData(curs):         # case 1: pass in a cursor, which is generally
curs.execute('select ...') # reused across queries
return curs.fetchall()

def getSomeData(conn): # case 2: pass in a connection,allocate
curs=conn.cursor() # a cursor for this query
curs.execute('select ...')
return curs.fetchall()

当然,这两种方法都返回相同的数据。

这两种方法之间的权衡是什么?一个效率特别高还是低?在许多查询上重复使用游标是否存在任何潜在的陷阱?

最佳答案

您可以随心所欲地重复使用 cx_Oracle 游标,没问题。如果您在短时间内执行数千个小查询,您可能通过重新使用游标看到轻微的性能提升,但我对此表示怀疑。

我有时会创建新游标,有时会重新使用现有游标,具体取决于它是否使代码更易于阅读和理解。

例如,如果我有各种需要访问数据库的过程,我可能会传递一个 Oracle 连接对象,或在该连接上创建的游标。

只要能让您的代码更具可读性和更易于维护,这就是我所追求的。

关于python - 重用游标与创建新游标的权衡是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2035212/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com