找到关于数据库的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。放置一个循环,我们将从中读取文件中的记录并将其插入数据库。每次记录被… 阅读更多

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 | 内部连接/无连接
F | 全外部连接
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”,这表示优化器只需要读取索引空间即可获取查询数据。

广告