找到关于数据库的6705 篇文章

不可重复读和幻读如何影响 COBOL-DB2 程序的功能?

Mandalika
更新于 2020-11-30 09:12:38

582 次浏览

不可重复读的情况发生在 COBOL-DB2 程序多次执行相同的查询,但每次查询的结果都不同时。这通常发生在两个 COBOL-DB2 程序访问 DB2 表的同一行时。第一个程序读取该行,然后第二个程序读取同一行,更新它并提交更改。第一个程序再次读取同一行,但现在数据与之前的读取不匹配。幻读的情况发生在多次执行查询时,查询结果中的行数不匹配时。更多… 阅读更多

丢失更新和脏读如何影响 COBOL-DB2 程序的处理?

Mandalika
更新于 2020-11-30 09:11:49

746 次浏览

丢失更新和脏读问题与并发性有关。并发性定义为两个或多个应用程序访问同一表数据的的能力。丢失更新以以下方式影响 COBOL-DB2 程序的处理。假设有两个应用程序程序——PROG A 和 PROG B 正在尝试访问 ORDERS DB2 表的同一行。PROG A 和 PROG B 同时从 ORDERS 表中读取 ORDER_ID = 'Z87661' 的一行。PROG A 更新此行中的某些数据并提交更改。PROG B 现在更新… 阅读更多

在 COBOL-DB2 程序中实现重启逻辑

Mandalika
更新于 2020-11-30 09:11:01

10K+ 次浏览

问题:一个 COBOL-DB2 程序从包含 1000 条记录的输入文件中获取数据并将数据插入到 DB2 表中。该程序在第 432 条记录后失败。您将如何实现重启逻辑?解决方案通过设置提交频率可以在 COBOL-DB2 程序中实现重启逻辑。如果我们选择 100 的提交频率,则需要执行以下步骤:声明一个计数器变量,例如 WS-COUNT。放置一个循环,我们将从中读取文件中的记录并将其插入数据库。每次记录插入时,计数器 WS-COUNT 加一… 阅读更多

DB2 中多索引和仅索引访问路径的用法和示例

Mandalika
更新于 2020-11-30 09:10:08

227 次浏览

问题:解释 DB2 优化器使用的多索引访问路径和仅索引访问路径之间的区别。分别举例说明。解决方案仅索引访问和多索引访问是 DB2 优化器为获取查询结果而选择的访问路径类型。当 SELECT 查询中给出的所有列都存在于索引中时,将使用仅索引访问路径。在这种情况下,优化器不必转到数据页来获取结果,所有数据都可以在索引页中找到。例如,ORDERS 表的主键为 ORDER_ID… 阅读更多

DB2 中 UNION 和 UNION ALL 的区别

Mandalika
更新于 2020-11-30 09:08:59

2K+ 次浏览

DB2 中的 UNION 用于合并两个或多个 SELECT 语句。SELECT 语句可以作用于单个表或多个表。每个 SELECT 语句都是单独处理的,并将它们的结果组合起来以给出最终的结果行。UNION 语句将消除 SELECT 语句结果中出现的重复行。如果我们想要保留重复行,那么我们可以使用 UNION ALL 语句。例如,如果我们想要提取 ORDERS 和 ORDERS_HIST 表中 ORDER_TOTAL 大于 1000 的所有 ORDER_ID,我们可以使用以下带有… 的查询 阅读更多

什么是固定列表 SELECT?给出语法并用示例解释

Mandalika
更新于 2020-11-30 09:08:05

151 次浏览

EXECUTE IMMEDIATE 和 EXECUTE WITH PREPARE 不能用于 SELECT 查询。对于 SELECT 查询,我们有一个固定列表 SELECT,其中要提取的列保持不变,不能更改。例如,如果我们想要选择 2020-08-14 下的订单。然后我们可以使用如下所示的动态 SQL:示例 MOVE ‘SELECT ORDER_ID FROM ORDERS WHERE ORDER_DATE=?’ TO WS-SQL-QUERY EXEC SQL    DECLARE ORDER-CUR CURSOR FOR SELQUERY END-EXEC EXEC SQL    PREPARE SELQUERY FROM :WS-SQL-QUERY END-EXEC MOVE ‘14-08-2020’ TO WS-ORDER-DATE EXEC SQL    OPEN ORDER-CUR USING :WS-ORDER-DATE END-EXEC PERFORM UNTIL SQLCODE = +100… 阅读更多

DB2 中 EXECUTE IMMEDIATE 和 EXECUTE WITH PREPARE 的区别是什么?

Mandalika
更新于 2020-11-30 09:06:42

671 次浏览

EXECUTE IMMEDIATE 和 EXECUTE PREPARE 是动态 SQL 的形式。对于 EXECUTE immediate,我们可以在主机变量中给出 SQL 语句,并将此主机变量传递给 EXECUTE IMMEDIATE。以下示例演示了这些形式。示例 01 WS-SQL-DECLARE    05 WS-SQL-LEN   PIC S9(04) COMP.    05 WS-SQL-QUERY   PIC X(70). MOVE +80 TO WS-SQL-LEN MOVE “UPDATE ORDERS SET ORDER_PAID = ‘YES’ WHERE ORDER_DATE = ‘14-08-2020’” TO WS-SQL-QUERY EXEC SQL    EXECUTE IMMEDIATE :WS-SQL-DECLARE END-EXEC 对于 EXECUTE PREPARE,SQL 语句首先被准备然后执行。我们可以使用这种形式的动态 SQL… 阅读更多

借助示例解释 DB2 中动态 SQL 的概念

Mandalika
更新于 2020-11-30 09:04:45

1K+ 次浏览

静态 SQL 硬编码在 COBOL-DB2 程序中,SQL 查询在程序执行期间不能更改。我们只能更改主机变量的值。对于动态 SQL,我们可以在运行时更改 COBOL-DB2 程序中的列、表和谓词。例如,根据当前日期,我们可以更新 ORDERS 或 ORDERS_HIST 表。此查询可以使用包含 ORDERS 表或 ORDER_HIST 表的动态 SQL 构建。动态 SQL 的主要优点是其灵活性。我们可以根据业务逻辑添加列或更改表/谓词。在… 阅读更多

PLAN 表的 QBLOCK_TYPE 和 JOIN_TYPE 列有什么意义?

Mandalika
更新于 2020-11-30 09:03:55

122 次浏览

PLAN_TABLE 的 QBLOCK_TYPE 列主要提供有关查询类型的信息。它可以具有 CORSUB 值,表示查询是相关子查询,而 NCOSUB 表示查询是非相关子查询。JOIN_TYPE 列指示查询中使用的连接类型。此列可以根据下表取值。列值解释BLANK内部连接/无连接FFULL 外部连接L左外部连接R右外部连接

DB2 中 PLAN 表的 ACCESSTYPE 和 INDEXONLY 列有何意义?

Mandalika
更新于 2020年11月30日 09:03:06

浏览量:485

DB2 中的 PLAN_TABLE 包含优化器从 EXPLAIN 语句中使用的访问路径的详细信息。此表提供了关于 DB2 SQL 语句的 PLAN 的许多信息。ACCESSTYPE 是 PLAN_TABLE 的列之一,它提供了关于访问类型的详细信息。下面给出此列中可能存在的取值及其解释。列值 解释 I 基于索引的访问 R 表空间扫描 M 多索引扫描 N 谓词中存在索引访问 INDEXONLY 列的值可以是“Y”,这表示优化器只需要读取索引空间即可获取查询数据。

广告