589 次浏览
DB2 具有 DCL 概念,通过它我们可以控制对 DB2 对象(如表、计划等)的访问。DCL 代表数据控制语言,使用它我们可以为用户提供和撤销对 DB2 对象的访问权限。GRANT 命令将授予用户对指定对象的访问权限,而 REVOKE 命令将撤销用户的访问权限。例如,如果我们要为用户 REL123X 提供对 ORDERS 表的 SELECT 和 UPDATE 访问权限,我们将执行以下命令:GRANT SELECT, UPDATE ON ORDERS TO REL123X如果我们想提供 INSERT 访问权限,我们将使用以下命令:GRANT ... 阅读更多
211 次浏览
当任何应用程序使用某个资源时,DB2 会对该资源(如表、表空间等)进行锁定。在 COBOL-DB2 程序中,如果我们正在修改或删除表中的数据,则 DB2 会放置锁。当我们使用 ROLLBACK 语句来恢复数据库中所做的更改时,DB2 持有的所有锁默认都会被释放。如果我们希望在回滚后仍保持对资源的锁定,则必须使用 ON ROLLBACK RETAIN LOCKS 而不是 ROLLBACK。例如,考虑一个使用 FOR UPDATE OF 子句声明的游标 ORDER_CUR。因此,一旦... 阅读更多
2K+ 次浏览
问题:如何在 DB2 中使用 SAVEPOINT?SAVE-POINT 在 DB2 中的用途是什么?请举例说明。解决方案SAVEPOINT 用作标记或标签来保存更改,而无需提交到数据库。在对数据库进行更改后,我们可以提供一个名为 SAVEPOINT 的语句,然后在任何时间点都可以使用 ROLLBACK 语句将更改回滚到此保存点。实际上,我们可以在 COBOL-DB2 程序中有多个 SAVEPOINT,并且可以使用 ROLLBACK 跳回到任何一个 SAVEPOINT。这将恢复所做... 阅读更多
6K+ 次浏览
DB2 存储过程是由 DBMS 直接管理的程序。存储过程通常包含 SQL 语句,并且可以由应用程序程序调用。存储过程处理查询并将结果返回给应用程序程序。存储过程可以用于经常使用的 SQL 语句,因此,与其一遍又一遍地使用相同的 SQL 查询,不如简单地使用存储过程。存储过程的另一个好处是,与应用程序程序中使用的静态 SQL 语句相比,它们速度更快,性能更好。存储过程可以... 阅读更多
532 次浏览
DB2 索引用于提高查询性能并加快查询结果速度。可以在单个表上构建多个索引,DB2 优化器会根据 WHERE 子句中使用的谓词选择不同的索引来获取查询结果。为了查找在特定表上构建的所有索引,我们将使用 DB2 系统表 SYSIBM.SYSINDEXES。此表记录与索引相关的所有详细信息。可以在此表上使用以下 SQL 查询以获取所需的结果。示例SELECT NAME, TBNAME FROM SYSIBM.SYSINDEXES WHERE TBNAME = ‘’... 阅读更多
126 次浏览
DB2 计划包含所有可执行形式的 SQL 语句。要执行任何 COBOL-DB2 程序,我们需要提供其相应的计划。DB2 优化器将评估计划中存在的 SQL 的访问路径,以获取 COBOL-DB2 程序的结果。计划中的 SQL 可能会使用许多索引。索引根据键值促进表搜索并加快查询处理时间。如果删除了任何索引,则可能会对包含使用该已删除索引的 SQL 的计划产生负面影响。因此,作为影响分析的一部分,它... 阅读更多
590 次浏览
DB2 标量函数采用单个列值并返回单个结果。列函数采用 DB2 表中多行的列值并返回单个结果。在标量函数的情况下,仅涉及一行。标量函数描述LENGTH给出列值的长度REPLACE用于将一个字符串替换为另一个字符串CONCAT用于组合两个或多个列值INTEGER给出列值的整数等价物CHAR给出列值的字符等价物例如,如果我们有一个 ORDERS DB2 表,并且我们只想返回所有订单的 ORDER_TOTAL 的整数价值... 阅读更多
603 次浏览
DB2 列函数也称为聚合函数。这些函数采用来自多行特定列的值并返回单个值。以下是某些最常用的列函数的列表。列函数描述SUM查找列值的总和COUNT计算列值的个数AVG查找列值的平均值MAX查找列中的最大值MIN查找列中的最小值列函数只能用于 SELECT 查询。例如,如果我们必须查找从 ORDERS 表中于 2020-08-15 下达的所有订单的 ORDER_TOTAL 的平均值,则... 阅读更多
当两个应用程序锁定彼此需要的数据时,就会发生死锁情况。这两个应用程序都等待另一个应用程序释放锁,因此发生死锁。让我们看一个例子来更好地理解这一点:有两个 COBOL-DB2 程序正在执行:PROG A 和 PROG B。PROG A 在 ORDERS 表中持有 UPDATE 锁,而 PROG B 在 TRANSACTION 表中持有 UPDATE 锁。在某个时刻,PROG A 需要 TRANSACTION TABLE 上的 UPDATE 锁,而 PROG B 需要 ORDERS 表上的 UPDATE 锁,但两个应用程序程序... 阅读更多
共享锁、更新锁和排它锁是在并发应用程序处理中使用的锁类型。这意味着当两个或多个应用程序尝试访问同一行或页面时,会使用这些锁。以下是每种锁类型的描述。共享锁如果任何应用程序在页面上获取共享锁,则它可以读取该页面,但不能更新它。其他并发应用程序可以在同一页面上获取共享锁或更新锁。更新锁如果任何应用程序在页面上获取更新锁,则它可以读取该页面,但不能更新它。在... 阅读更多