首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Oracle PoolDataSource使DB游标保持打开状态,直到commit(),这是预期的行为吗?

Oracle PoolDataSource使DB游标保持打开状态,直到commit(),这是预期的行为。PoolDataSource是Oracle提供的连接池技术,用于管理数据库连接的创建和释放。在使用PoolDataSource时,游标的打开状态会一直保持,直到显式调用commit()方法提交事务。

这种行为是预期的,因为连接池的设计目的是为了提高数据库连接的复用性和性能。通过保持游标的打开状态,可以避免频繁地打开和关闭数据库连接,从而减少了连接的创建和销毁的开销。同时,保持游标的打开状态还可以提高事务的一致性和可靠性,确保在事务提交之前,所有的数据库操作都能正确执行。

然而,需要注意的是,这种行为也可能导致一些潜在的问题。如果在事务中执行了长时间运行的查询或操作,并且在commit()之前没有显式关闭游标,那么连接池中的连接资源可能会被长时间占用,导致连接池资源的耗尽和性能下降。因此,在使用PoolDataSource时,需要合理地管理和释放数据库连接,确保连接的及时归还和关闭。

对于这个问题,腾讯云提供了一系列的云数据库产品,如云数据库MySQL、云数据库SQL Server等,可以满足不同场景下的数据库需求。您可以根据具体的业务需求选择适合的产品,并参考以下链接获取更详细的产品介绍和文档:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python操作mysql数据库

不同数据库你需要下载不同DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。 DB-API 是一个规范....结果集是一个对象 fetchall():接收全部返回结果行. rowcount: 这是一个只读属性,并返回执行execute()方法后影响行数。...一个事务是一个不可分割工作单位,事务中包括诸操作要么都做,要么都不做。 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关。...Python DB API 2.0 事务提供了两个方法 commit 或 rollback。...commit()方法游标的所有更新操作,rollback()方法回滚当前游标的所有操作。每一个方法都开始了一个新事务。

2.1K40

运维学python之爬虫中级篇(七)Sq

还可以使用SQLite对应用程序进行原型化,然后将代码移植到更大数据库,如PostgreSQL或Oracle。...通常,您SQL操作需要使用来自Python变量值。您不应该使用Python字符串操作来组装您查询,因为这样做是不安全,它使程序容易受到SQL注入***。相反,使用DB-api参数替换。...您可以使用“:memory:”打开数据库连接到存储在RAM中数据库,而不是在磁盘上。当一个数据库被多个连接访问,其中一个进程修改数据库时,SQLite数据库将被锁定,直到事务被提交。...conn.execute(sql[, parameters]) 这是一个非标准快捷方式,它通过调用游标()方法创建一个游标对象,并使用给定参数调用游标的execute()方法,并返回游标。...conn.total_changes() 返回自数据库连接打开以来已修改、插入或删除数据库行总数。

1.3K20

Python快速学习第九天--安装并操作Mysql数据库

不同数据库你需要下载不同DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。 DB-API 是一个规范....结果集是一个对象 fetchall():接收全部返回结果行. rowcount: 这是一个只读属性,并返回执行execute()方法后影响行数。...一个事务是一个不可分割工作单位,事务中包括诸操作要么都做,要么都不做。 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关。...Python DB API 2.0 事务提供了两个方法 commit 或 rollback。...commit()方法游标的所有更新操作,rollback()方法回滚当前游标的所有操作。每一个方法都开始了一个新事务。

1.2K80

14 . Python3之MysSQL

IBM DB2,OracleOracle和Mysql、微软MS SQL,以前Infomix,Sybase等....,几个月后,他们就开发了Oracle1.0,Oracle快速被推销,但是很不稳定,直到1992年时候,Oracle7才逐渐稳定下来,并取得巨大成功,2001年9i版本被广泛应用. 2009年...# 打开数据库连接 db = pymysql.connect("116.196.83.113","root","ZHOUjian.21","youmen_db") # 使用cursor()方法创建一个游标对象...特性 **d 原子性(atomicity) 一个特性是一个不可分割工作单位,事务中包括诸操作要么都做,要么都不做 一致性(consistency) 事务必须使数据库从一个一致性状态到另一个一致性状态...commit()方法游标的所有更新操作,rollback()方法回滚当前游标的所有操作。每一个方法都开始了一个新事务。

1.7K50

python接口自动化(三十八)-python操作mysql数据库(详解)

,此过程如果出现异常则使用回滚技术使数据库恢 复到执行SQL语句之前状态;最后,依次销毁Cursor对象和Connection对象,以避免多计算机内存过多占用和浪费。   ...一个事务是一个不可分割工作单位,事务中包括诸操作要么都做,要么都不做。 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关。...不同数据库你需要下载不同DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。 DB-API 是一个规范....一个事务是一个不可分割工作单位,事务中包括诸操作要么都做,要么都不做。 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关。...Python DB API 2.0 事务提供了两个方法 commit 或 rollback。

1.8K31

变与不变: Undo构造一致性读例外情况

嘉年华听了恩墨学院一个主题:《重现ORA-01555 细说Oracle 12c Undo数据管理》,吕星昊老师介绍了UNDO概念以及ORA-1555产生,并介绍了12c以来OracleUNDO相关新特性...不过这个案例存在一点小瑕疵,因为如果一不小心,很可能会导致结果与预期不符,这是因为这里有一个例外存在。...我们先来模拟一下UNDO构造一致性读情况,对于Oracle而言,默认隔离级别是READ COMMIT,也就是说一个会话只能看到其他会话已经提交修改,未提交修改或者在当前会话查询发起之后提交修改都是不可见...再介绍一下OPEN CURSOR,Oracle中当一个游标打开,其结果集就已经确定了,也就是说这个游标会根据OPEN CURSOR这个时间点对应SCN来构造一致性查询。...,居然可以查询到发生在游标打开之后提交修改。

38220

Python3 操作Mysql数据库

数据库连接 import pymysql #模块导入 #打开数据库连接 db = pymysql.connect( host='数据库ip', user='用户名, passwd='密码', db...结果集是一个对象 fetchall(): 接收全部返回结果行. rowcount: 这是一个只读属性,并返回执行execute()方法后影响行数。...WHERE id=3;' #执行SQL语句 cursor.execute(sql) try: #执行SQL语句 cursor.execute(sql) #提交到数据库执行 db.commit() except...一个事务是一个不可分割工作单位,事务中包括诸操作要么都做,要么都不做。 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关。...Python DB API 2.0 事务提供了两个方法 commit 或 rollback。 错误处理 ? 总结: 1.本文参考了菜鸟教程和亲自操作后写出来

95430

Python3_MySQL数据库连接 - PyMySQL 驱动

结果集是一个对象 fetchall(): 接收全部返回结果行. rowcount: 这是一个只读属性,并返回执行execute()方法后影响行数。...一个事务是一个不可分割工作单位,事务中包括诸操作要么都做,要么都不做。 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关。...Python DB API 2.0 事务提供了两个方法 commit 或 rollback。...() except: # 发生错误时回滚 db.rollback() 对于支持事务数据库, 在Python数据库编程中,当游标建立之时,就自动开始了一个隐形数据库事务。...commit()方法游标的所有更新操作,rollback()方法回滚当前游标的所有操作。每一个方法都开始了一个新事务。

1.7K20

Python操作mysql数据库知识大全

1 不同数据库你需要下载不同DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。 DB-API 是一个规范....如果您对sql语句不熟悉,可以访问我们 SQL基础教程 实例: 以下实例链接MysqlTESTDB数据库: import MySQLdb # 打开数据库连接 db = MySQLdb.connect...结果集是一个对象 fetchall():接收全部返回结果行. rowcount: 这是一个只读属性,并返回执行execute()方法后影响行数。...数据库更新操作 更新操作用于更新数据表数据,以下实例将 TESTDB表中 SEX 字段全部修改为 'M',AGE 字段递增1: import MySQLdb # 打开数据库连接 db = MySQLdb.connect...中 AGE 大于 20 所有数据: import MySQLdb # 打开数据库连接 db = MySQLdb.connect("localhost", "testuser", "test123"

79410

python中MySQLdb模块用法实例

.没有默认值 port:MySQL服务使用TCP端口.默认是3306 charset:数据库编码 这个连接对象也提供了对事务操作支持,标准方法: commit() 提交 rollback() 回滚...relative') //这是一个只读属性,并返回执行execute()方法后影响行数 rowcount 三、数据库操作 1.创建数据表 如果数据库连接存在我们可以使用execute()方法来为数据库创建表...一个事务是一个不可分割工作单位,事务中包括诸操作要么都做,要么都不做。 ② 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。...() except: # 发生错误时回滚 db.rollback() 对于支持事务数据库, 在Python数据库编程中,当游标建立之时,就自动开始了一个隐形数据库事务。...commit()方法提交游标的所有更新操作,rollback()方法回滚当前游标的所有操作。每一个方法都开始了一个新事务。

67410

SQL SERVER事务处理

如果遇上错误,在 BEGIN TRANSACTION 之后所有数据改动都能进行回滚,以将数据返回到已知一致状态 。...ROLLBACK 对游标的影响由下面三个规则定义: 当 CURSOR_CLOSE_ON_COMMIT 设置为 ON 时,ROLLBACK 关闭但不释放所有打开游标。...当 CURSOR_CLOSE_ON_COMMIT 设置为 OFF 时,ROLLBACK 不影响任何打开同步 STATIC 或 INSENSITIVE 游标不影响已完全填充异步 STATIC 游标。...将关闭但不释放任何其它类型打开游标。 对于导致终止批处理并生成内部回滚错误,将释放在含有该错误语句批处理内声明所有游标。...不论游标的类型或 CURSOR_CLOSE_ON_COMMIT 设置,所有游标均将被释放,其中包括在该错误批处理所调用存储过程内声明游标

1.8K20

使用Python操作MySQL和Oracle数据库

这里直接从连接开始,首先使用win+R打开CMD,输入services.msc回车打开服务,找到Oracle监听程序,点击启动此服务即可。 ?...通过CMD查看监听状态也是已经启动,使用sqlplus连接到数据库,也可使用工具PLSQL远程连接,需要注意监听状态是否正常以及监听端口是否为默认1521。 ?...import cx_Oracle #连接数据库 db = cx_Oracle.connect('scott/scott@localhost:1521/orcl') #打开游标 cur = db.cursor...删除数据并查询 删除数据也很简单,连接数据库打开游标,执行SQL提交,关闭游标,关闭数据库,具体代码如下。...写在最后 Python使用标准API接口操作数据库是很简单,主要有六大步:连接数据库、打开游标、执行SQL、提交、关闭游标、关闭数据库。

2.8K10

Python读取Excel存入MySQL

结果集是一个对象 fetchall():接收全部返回结果行. rowcount: 这是一个只读属性,并返回执行execute()方法后影响行数。...一个事务是一个不可分割工作单位,事务中包括诸操作要么都做,要么都不做。 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关。...Python DB API 2.0 事务提供了两个方法 commit 或 rollback。...()except: # 发生错误时回滚 db.rollback() 对于支持事务数据库, 在Python数据库编程中,当游标建立之时,就自动开始了一个隐形数据库事务。...commit()方法游标的所有更新操作,rollback()方法回滚当前游标的所有操作。每一个方法都开始了一个新事务。

2.5K10

【源码】一文详解python中数据库操作!

1 不同数据库你需要下载不同DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。 DB-API 是一个规范....如果您对sql语句不熟悉,可以访问我们 SQL基础教程 实例: 以下实例链接MysqlTESTDB数据库: import MySQLdb # 打开数据库连接 db = MySQLdb.connect...结果集是一个对象 fetchall():接收全部返回结果行. rowcount: 这是一个只读属性,并返回执行execute()方法后影响行数。...数据库更新操作 更新操作用于更新数据表数据,以下实例将 TESTDB表中 SEX 字段全部修改为 'M',AGE 字段递增1: import MySQLdb # 打开数据库连接 db = MySQLdb.connect...中 AGE 大于 20 所有数据: import MySQLdb # 打开数据库连接 db = MySQLdb.connect("localhost", "testuser", "test123"

16010

疑难解答:ORA-01555场景模拟和解决方案

读取数据块前需要到回滚段事务信息表中读取Itl中没有标记完全事务状态Commit SCN,以判断是否需要进行一致性读。...大事务存在,往往是1555错误产生诱因。 6、使用游标时尽量使用显式游标,并且只在需要时候打开游标,同时将所有可以在游标外做操作从游标循环中拿出。 当游标打开时,查询就开始了,直到游标关闭。...减少游标打开时间,就减少了1555错误发生几率。...他由Oracle自动管理回滚段创建和回收。尽管有人认为这一特性是以后牺牲性能为代价,或者有其他缺点而不建议使用。但我认为,这确实是Oracle一个很好特性,特别是OLTP环境下应该使用它。...经过检查日志,是某个作业在运行时发生了1555错误,导致程序无法返回结果: 相关程序记录下日志: 错误分析解决 这是一个典型1555错误。

1.1K50

Python 操作 MySQL 数据库

结果集是一个对象 fetchall():接收全部返回结果行. rowcount: 这是一个只读属性,并返回执行execute()方法后影响行数。...一个事务是一个不可分割工作单位,事务中包括诸操作要么都做,要么都不做。 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关。...Python DB API 2.0 事务提供了两个方法 commit 或 rollback。...() except: # 发生错误时回滚 db.rollback() 对于支持事务数据库, 在Python数据库编程中,当游标建立之时,就自动开始了一个隐形数据库事务。...commit()方法游标的所有更新操作,rollback()方法回滚当前游标的所有操作。每一个方法都开始了一个新事务。

2.4K30

python学习-使用MySQLdb操作

:常量,表示sql语句结果集中返回了多少条记录 arraysize:变量,保存了当前获取记录下标 四、连接数据库基本操作 4.1数据库连接 import MySQLdb # 打开数据库连接 db =.../usr/bin/python # -*- coding: UTF-8 -*- import MySQLdb # 打开数据库连接 db = MySQLdb.connect("localhost", ...一个事务是一个不可分割工作单位,事务中包括诸操作要么都做,要么都不做。 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关。...Python DB API 2.0 事务提供了两个方法 commit 或 rollback。...结果集是一个对象 fetchall():接收全部返回结果行. rowcount: 这是一个只读属性,并返回执行execute()方法后影响行数。 #!

45710

Python3出现“No module named MySQLdb“问题-以及使用PyMySQL连接数据库

结果集是一个对象 -  fetchall():接收全部返回结果行 -  rowcount:这是一个只读属性,并返回执行execute()方法后影响行数 实例说明: 查询EMPLOYEE表中salary...WHERE AGE > '%d'" % (20) try: # 执行SQL语句 cursor.execute(sql) # 提交修改 db.commit() except: # 发生错误时回滚...一个事务是一个不可分割工作单位,事务中包括诸操作要么都做,要么都不做。 -  一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。...() except: # 发生错误时回滚 db.rollback() 对于支持事务数据库,在Python数据库编程中,当游标建立之时,就自动开始了一个隐形数据库事务。...commit()方法游标的所有更新操作,rollback()方法回滚当前游标的所有操作。每一个方法都开始了一个新事务。

27.7K64

Oracle数据库中最让人匪夷所思十大问题盘点

Select 语句也会导致系统hang住 我们都知道在 Oracle 数据库里是“读不阻塞写,写不阻塞读”,那么是否可以认为在正常情况下,select 操作是怎样都能执行,始终不会被 hang 住呢...全表扫描会产生大量 db file sequential read 等待? 我们知道Oracle在进行全表扫时候是多块读方式。...1、有些2B结果 ? ? 这是怎么回事?...我们选择了一个占用了接近1GB会话,查询v$open_cursor,查看其打开游标中是否有大数据量排序SQL: ? ?...Shutdown immediate 会导致数据库无法启动 我们知道,以immediate方式停库之后,整个Oracle数据库文件都是处于一致状态,重新启动数据库实例后按理说是不需要再进行实例恢复

1.5K60

Postgresql中plpgsql事务管理实例(commitrollback)

总结 commit与rollback都会主动把之前事务结束掉,然后再自动开启新事务。知道这一点,后面所有用例行为就都很好理解了。...commit与rollback会主动关闭游标,例外是for循环中commit/rollback会把游标转换为hold状态,循环内部可以一直保持open状态直到循环结束。...游标用例 1 open游标commit游标恢复unopen状态,使用失败 drop table tf1; create table tf1(c1 int, c2 int, c3 varchar(...commit后open:游标重新打开正常使用 drop table tf1; create table tf1(c1 int, c2 int, c3 varchar(32), c4 varchar(32...:游标转换为hold状态直到循环结束 drop table test1; drop table test2; create table test1(a int); create table test2(

1.6K50
领券