為 DB2 找到了 150 篇文章

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

2000+ 次瀏覽

DB2 中的 UNION 用於合併兩個或更多 SELECT 語句。SELECT 語句可以針對單個表或多個表。每個 SELECT 語句分別處理,其結果被合併為最終結果行。UNION 語句將消除因 SELECT 語句而出現的重複行。如果希望保留重複行,則可以使用 UNION ALL 語句。例如,如果希望在 ORDERS 和 ORDERS_HIST 表中提取所有 ORDER_ID,其中 ORDER_TOTAL 大於 1000,則可以使用以下帶有 ... 閱讀更多

固定列表 SELECT 是什麼?給出演示語法並在示例幫助下進行解釋

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

151 次瀏覽

不能對 SELECT 查詢使用 EXECUTE IMMEDIATE 和帶 PREPARE 的 EXECUTE。對於 SELECT 查詢,我們有固定列表 SELECT 其中要獲取的列保持固定,且無法更改。例如,如果希望選擇 14-08-2020 下達的訂單。那麼,可以使用如下所示的動態 SQL:示例將 “SELECT ORDER_ID FROM ORDERS WHERE ORDER_DATE=?” 移動到 WS-SQL-QUERY EXEC SQL    為 SELQUERY 宣告 ORDER-CUR 遊標 END-EXEC EXEC SQL    從 :WS-SQL-QUERY 準備 SELQUERY END-EXEC 將 “14-08-2020” 移動到 WS-ORDER-DATE EXEC SQL    使用 :WS-ORDER-DATE 開啟 ORDER-CUR END-EXEC 執行直到 SQLCODE = +100 ... 閱讀更多

DB2 的 EXECUTE IMMEDIATE 和 EXECUTE WITH PREPARE 之間有何區別?

Mandalika
更新於 30-11-2020 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)。將 +80 移動到 WS-SQL-LEN 將 “UPDATE ORDERS SET ORDER_PAID = ‘YES’ WHERE ORDER_DATE = ‘14-08-2020’” 移動到 WS-SQL-QUERY EXEC SQL    立即執行 :WS-SQL-DECLARE END-EXEC 在 EXECUTE PREPARE 情況下,SQL 語句首先被準備,然後執行。我們可以使用這種形式的動態 SQL ... 閱讀更多

在示例幫助下,解釋 DB2 中動態 SQL 概念

Mandalika
更新於 30-11-2020 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
更新於 30-11-2020 09:03:55

122 次瀏覽

PLAN_TABLE 的 QBLOCK_TYPE 列主要提供了有關查詢型別的的資訊。它的值可能為 CORSUB,表明該查詢為相關子查詢,而 NCOSUB 表明該查詢為非相關子查詢。JOIN_TYPE 列表明在查詢中使用的連線型別。此列可根據下表採用值。列值解釋空白內部連線/無連線FFULL 外部連線L左外部連線RRIGHT 外部連線

什麼是 DB2 中 PLAN 表的 ACCESSTYPE 和 INDEXONLY 列的重要性?

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

485 次瀏覽

DB2 中的 PLAN_TABLE 包含最佳化器從 EXPLAIN 語句中使用的訪問路徑的詳細資訊。此表提供了有關具有 DB2 SQL 語句的 PLAN 的大量資訊。ACCESSTYPE 是 PLAN_TABLE 的列之一,它提供了有關訪問型別的資訊。此列中可能出現的值及其解釋如下。列值解釋I索引訪問RT表空間掃描MMultiple 索引掃描N謂詞中存在的索引訪問INDEXONLY 列可以採用“Y”作為值,表示最佳化器只需要讀取索引空間即可獲取查詢資料。

SEQUENCE 在 DB2 中的用途和語法是什麼?

Mandalika
更新於 2020 年 11 月 30 日 09:02:16

284 次瀏覽

序列用於自動生成唯一 ID。我們可以將 DB2 表中的一列定義為 SEQUENCE 型別。這將使使用者程式能夠為表中插入的每一新行自動生成唯一 ID。DB2 生成的自動 ID 會在整個資料庫中保持唯一性。例如,SEQUENCE 的實際應用發生在為每個區域(北、東、西和南)分配單獨的 ORDERS 表中,然後我們可以將 ORDER_ID 宣告為 SEQUENCE。它將始終為 ORDER_ID 生成一個唯一值,與為北方、東方分配的 ORDER 表無關, ... 閱讀更多

DB2 中相關和非相關子查詢之間的區別

Mandalika
更新於 2020 年 11 月 30 日 09:01:19

3K+ 次瀏覽

子查詢是巢狀查詢。當此子查詢僅執行一次,並且此子查詢的結果用於提取主查詢中的資料時,則此類子查詢稱為非相關子查詢。另一方面,當子查詢為每次執行引用主查詢時,則該子查詢稱為相關子查詢。例如,如果我們要從 ORDERS 表中提取所有 ORDER_TOTAL 大於總體平均值的訂單,那麼可以使用下面的非相關子查詢。示例SELECT ORDER_ID FROM ORDERS WHERE ORDER_TOTAL > (SELECT AVG(ORDER_TOTAL) FROM ORDERS)那裡 ... 閱讀更多

在 DB2 中使用 INNER 和 OUTER JOIN 的用法和語法

Mandalika
更新於 2020 年 11 月 30 日 09:00:15

5K+ 次瀏覽

問題:如何在 ORDERS 和 TRANSACTION DB2 表的幫助下解釋 INNER JOIN 和 OUTER JOIN。解決方案JOIN 用於結合 DB2 中一個或多個表中的資料。有兩種主要型別的 JOIN —— INNER JOIN 和 OUTER JOIN。它們之間的基本區別在於,INNER JOIN 是兩個或多個表的交集,而外連線是兩個或多個表的並集。基本上,INNER JOIN 用於使用相等列值組合來自多個表的資料,並且另一方面,在 OUTER JOIN 的情況下,如果 ... 閱讀更多

廣告