• DB2 9 利用启迪(733 测验)认证指南,第 8 部分: 初级编程(4)


    用户定义的数据规范、并发性思量要素等等
    developerWorks








    复合 SQL

    何时利用复合 SQL

    SQL 语句平常要逐句实验。这使得编程更加等闲,但是也意味着必需在客户机和服务器之间传送每个语句和每个效果集。为了添加利用按次所天生的收集流量,可以将多个 SQL 语句编为一个组。这个组则称作复合 SQL(compound SQL)。复合 SQL 平常用在服务器端东西中,比如存储进程和用户定义的函数,也用在嵌入式 SQL 利用按次中。

    有两种规范的复合 SQL:原子的(atomic)和非原子的(non-atomic)。

    拼集原子的 SQL,当一切子语句告成完成时,大要当某个子语句失败时,利用按次会从数据库经管器采取一个响应。要是一个子语句失败,那么会将整个组视作失败,该组中对数据库所做的任何变动都被回滚。

    拼集非原子的 SQL,当一切子语句完成时,利用按次会从数据库经管器采取一个响应。无论前一子语句能否告成完成,组中的每个子语句城市实验。只需在回滚收罗非原子复合 SQL 的事情单元时,才可以回滚该语句组。





    回页首



    复合 SQL:利益和缺陷

    利用复合 SQL 有一些利益:

    • 可以添加收集流量,由于只会传送最初的 SQL 块和最终的效果集。
    • 可以进步利用按次的小我私家速度,由于更多事情是在服务器而不是客户机上实验的。

    但是,利用复合 SQL 也有一些缺陷:

    • 只能从实验的整个 SQL 语句组采取一条错误旧事。
    • 要是发作错误,就无法断定是哪个 SQL 语句失败了。

    图 3 是一个利用复合 SQL 形成收集流量下降的示例。更多的线表现更大的收集流量。收集流量的下降完全寄托复合 SQL 中 SELECTINSERTUPDATEDELETE 语句的平衡。

    图 3. 收集流量:用和不用复合 SQL
    收集流量:用和不用复合 SQL

    在下列几种环境下,提议利用复合 SQL:

    • 将在 SQL 语句块中来回发送少量数据。利用复合 SQL 可以添加收集流量。
    • 您有一个回响反映迟钝的客户机,但是但愿利用高速的服务器。利用复合 SQL 可以确保在服务器上举办处理奖惩,并仅将末了的效果发送回客户机。





    回页首



    利用复合 SQL

    复合语句块以 BEGIN 要害字入手着手,并以 END 要害字完毕。以下是一个示例:

    BEGIN ATOMIC
        UPDATE employee
            SET salary = salary * 1.1
            WHERE edlevel > 12;
        UPDATE dept
            SET budget = budget * 0.8
            WHERE profitMargin > 10;
        INSERT INTO deptList (empno,salary)
    	VALUES (SELECT empno,salary
    		 FROM employee WHERE edlevel = 15);
    END
    


    要因此上的复合语句在第一个 UPDATE 语句就失败了,将无法断定是哪个语句失败了。结构这个复合语句的利益是,发送给服务器并前去的数据仅仅是 SQL 语句和末了的 SQL 前去码。




    版权声明: 原创作品,允许转载,转载时请务必以超链接编制标明文章 原始来由 、作者信息和本声明。否则将追查执法责任。

  • 相关阅读:
    FireDAC的数据库的FDConnect
    Readers and Writers JSON Framework(2)
    JSON Objects Framework(1)
    SQLServer 临时表的使用
    客户重复需要检查CRM客户
    采购订单下推付款申请单获取组织业务关系
    采购订单跨组织生成销售订单,没得选组织的问题
    销售合同缓存问题
    BOS中给基础资料赋值
    辅助属性值列表功能的缺点
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1972820.html
Copyright © 2020-2023  润新知