zoukankan      html  css  js  c++  java
  • Informix IDS 11零碎操持(918测验)认证指南,第 3 部门: 阻碍诊断(6)

    并发

    并发关于多措施零碎中的功能极度重要。假如数据会见被序列化,那么每次只需一个措施可以使用相干数据,措置就会分明变慢。让多个运用措施同时会见数据库,遵从就会高得多。

    使用 WITH CONCURRENT TRANSACTION

    在当前连接上有活动事件的情况下,WITH CONCURRENT TRANSACTION 子句可以切换到另一个连接。假如当前连接不是使用 WITH CONCURRENT TRANSACTION 子句确立的,那么在有活动事件的情况下,就不能切换到另一个连接;CONNECTSET CONNECTION 语句失败,前去一个错误,当前连接中的事件依然是活动的。

    在这种情况下,运用措施必需提交或回滚当前连接中的活动事件,然后才干切换到另一个连接。

    WITH CONCURRENT TRANSACTION 撑持多个并发事件,在这种情况下,每个连接可以有本身的事件,并且 COMMIT WORKROLLBACK WORK 语句只影响当前连接。WITH CONCURRENT TRANSACTION 子句不撑持全局事件,也就是一个事件跨多个数据库连接。COMMIT WORKROLLBACK WORK 语句不能跨多个数据库连接。





    回页首



    并发和锁

    假如数据库位于一个单用户任务站上,没有到其他盘算机的收集连接,并发就不重要了。在其他一切情况下,在您的措施修改数据时,都必需尽概略容许其他措施读取或修改相同的数据。并发触及两个或更多的措施自力地同时使用相同的数据。

    高度并发性关于多用户数据库零碎中的功能极度重要。但是,除非对数据的使用体例进行节制,否则并发概略会招致各类负面感导。措施概略会读取过期的数据;即使看上去效果输出了修改,它们依然概略会丧失。

    为了戒备这类错误,数据库办事器使用一个锁零碎。锁是措施可以在一组数据上放置的一种声明或预订。数据库办事器担保,只需数据被锁定了,其他措施就不能修改它。当另一个措施乞求此数据时,数据库办事器要么让这个措施守候,要么前去给它一个错误。

    为了节制锁对数据会见的影响,可以使用 SQL 语句的组合:SET LOCK MODESET 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 -wmonmode -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 断绝级其他一切事件



    版权声明: 原创作品,容许转载,转载时请务必以超链接体例标明文章 原始理由 、作者信息和本声明。否则将究查法律责任。

  • 相关阅读:
    求成绩表中各门课程前三名
    GridView绑定时通过RowDataBound事件获取数据源列值
    在运行时获取ibatIS执行的sql
    Java基础:数组Array转成List的几种方法
    python之格式化输出
    python之集合【set】
    每日日报
    每日日报
    每日日报
    每日日报
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1973037.html
Copyright © 2011-2022 走看看