В 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()
Конечно, оба подхода возвращают одни и те же данные.
Каковы компромиссы между двумя подходами? Является ли это особенно более или менее эффективным? Существуют ли какие-либо потенциальные проблемы для повторного использования курсора по многим запросам?