并发
并发关于多措施零碎中的功能极度重要。假如数据会见被序列化,那么每次只需一个措施可以使用相干数据,措置就会分明变慢。让多个运用措施同时会见数据库,遵从就会高得多。
使用 WITH CONCURRENT TRANSACTION
在当前连接上有活动事件的情况下,WITH CONCURRENT TRANSACTION
子句可以切换到另一个连接。假如当前连接不是使用 WITH CONCURRENT TRANSACTION
子句确立的,那么在有活动事件的情况下,就不能切换到另一个连接;CONNECT
或 SET CONNECTION
语句失败,前去一个错误,当前连接中的事件依然是活动的。
在这种情况下,运用措施必需提交或回滚当前连接中的活动事件,然后才干切换到另一个连接。
WITH CONCURRENT TRANSACTION
撑持多个并发事件,在这种情况下,每个连接可以有本身的事件,并且 COMMIT WORK
和 ROLLBACK WORK
语句只影响当前连接。WITH CONCURRENT TRANSACTION
子句不撑持全局事件,也就是一个事件跨多个数据库连接。COMMIT WORK
和 ROLLBACK WORK
语句不能跨多个数据库连接。
回页首
并发和锁
假如数据库位于一个单用户任务站上,没有到其他盘算机的收集连接,并发就不重要了。在其他一切情况下,在您的措施修改数据时,都必需尽概略容许其他措施读取或修改相同的数据。并发触及两个或更多的措施自力地同时使用相同的数据。
高度并发性关于多用户数据库零碎中的功能极度重要。但是,除非对数据的使用体例进行节制,否则并发概略会招致各类负面感导。措施概略会读取过期的数据;即使看上去效果输出了修改,它们依然概略会丧失。
为了戒备这类错误,数据库办事器使用一个锁零碎。锁是措施可以在一组数据上放置的一种声明或预订。数据库办事器担保,只需数据被锁定了,其他措施就不能修改它。当另一个措施乞求此数据时,数据库办事器要么让这个措施守候,要么前去给它一个错误。
为了节制锁对数据会见的影响,可以使用 SQL 语句的组合:SET LOCK MODE
和 SET ISOLATION 或 SET TRANSACTION
。
Committed read with last committed 断绝级别
在使用 committed read 断绝级别时,假如其他会话持有锁,当前会话无法获得锁,可以或许数据库办事器探测到了丧生锁,SQL 操纵就会失败。(假如两个用户都持有锁,而每个用户希冀获得对方拥有的锁,就会出现丧生锁。)SET ISOLATION COMMITTED READ
语句的 LAST COMMITTED
关头字选项可以增长锁争辩的危害。这个语法要求办事器前去最近提交的行版本,即使另一个并发会话持有排他锁。关于 B-tree 和结果性索引、撑持事件日志记录的表以及不给与页面级锁或排他锁的表,可以使用 LAST COMMITTED
关头字选项。
USELASTCOMMITTED onconfig 参数
USELASTCOMMITTED
指定,COMMITTED READ
断绝级其他 LAST COMMITTED
特性隐式地奏效。
值的范围:
- None —— 不辨认断绝级别
- 'Committed Read' —— 处于 committed read 断绝级其他一切事件
- 'Dirty Read' —— 处于 dirty read 断绝级其他一切事件
- All —— 处于 committed read 和 dirty read 断绝级其他一切事件
对这个 onconfig
参数的修改只在共享内存重新初始化时奏效。
使用 onmode 影响断绝级别
当数据库办事器处于在线体例时,可以使用 onmode -wm
和 onmode -wf
选项修改 USELASTCOMMITTED
设置参数的值。
使用以下语法为当前会话的随便一个设置参数指定新值:
onmode -wm USELASTCOMMITTED=value
使用以下语法修改 ONCONFIG 文件中随便一个设置参数:
onmode -wf USELASTCOMMITTED=value
SET ENVIRONMENT
SET ENVIRONMENT
SQL 语句可以在运转时指定选项,它所做的设置会影响同等例程中提交的后续盘问。这是对 SQL 的 ANSI/ISO 规范的扩展。
USELASTCOMMITTED
的设置与 onconfig 参数相同:
- None —— 不辨认断绝级别
- 'Committed Read' —— 处于 committed read 断绝级其他一切事件
- 'Dirty Read' 处于 dirty read 断绝级其他一切事件
- All —— 处于 committed read 和 dirty read 断绝级其他一切事件
版权声明: 原创作品,容许转载,转载时请务必以超链接体例标明文章 原始理由 、作者信息和本声明。否则将究查法律责任。