Как я могу создать пул соединений (или пул сеансов, я не знаю разницу между 2, новым в python и кодированием) для улучшения производительности кода?
Каждое соединение в cx_Oracle connection pool
соответствует одному Oracle session
.
Когда приложения часто подключаются и отключаются от базы данных, Пул подключений повышает производительность. cx_Oracle
пул соединений позволяет приложениям создавать и поддерживать пул соединений с базой данных. Пулы создаются с помощью cx_Oracle.SessionPool()
, а затем можно вызывать SessionPool.acquire()
для получения соединения из пула. Начальный размер пула и максимальный размер пула указываются при создании пула. Когда пул должен расти, новые соединения создаются автоматически. Пул может уменьшиться до минимального размера, когда соединения больше не используются. Соединения, полученные из пула, должны быть возвращены обратно в пул с помощью SessionPool.release()
или Connection.close()
, когда они больше не требуются. В противном случае они будут автоматически возвращены в пул, когда все переменные, ссылающиеся на соединение go, выйдут из области видимости. Пул сеансов может быть полностью закрыт с помощью SessionPool.close()
.
В приведенном ниже примере показано, как подключиться к Oracle базе данных с помощью пула соединений:
# Create the session pool
pool = cx_Oracle.SessionPool("hr", userpwd,
"dbhost.example.com/orclpdb1", min=2, max=5, increment=1, encoding="UTF-8")
# Acquire a connection from the pool
connection = pool.acquire()
# Use the pooled connection
cursor = connection.cursor()
for result in cursor.execute("select * from mytab"):
print(result)
# Release the connection to the pool
pool.release(connection)
# Close the pool
pool.close()
Подробнее о Пул соединений .