若要瞭解 DB2 執行效能的注意事項,請參閱 DB2 for AS/400 SQL Programming Guide。 本書具有豐富的資訊,如有效率地使用 SQL 索引、改善結合查詢的執行效能, 以及從兩個以上的表格中選取資料時如何改善執行效能。在下列段落中, 將重點描述資料庫與 SQL 語言環境的特定技術:
下列彙總將概述某些可改善資料庫存取的最簡單資料庫技術:
例如,EDUCLVL 是半字整數值 (SMALLINT)。請設定:
... WHERE EDUCLVL < 11 AND EDUCLVL >= 2
而不要設定:
... WHERE EDUCLVL < 1.1E1 AND EDUCLVL > 1.3
例如,EMPNO 為 CHAR(6),DEPTNO 為 CHAR(3)。請設定:
... WHERE EMPNO > '000300' AND DEPTNO < 'E20'
而不要設定:
... WHERE EMPNO > '000300 ' AND DEPTNO < 'E20 '
... WHERE LASTNAME LIKE 'J%SON%'
不過,當在字串開頭使用時,LIKE 型樣可以阻止 DB2 for AS/400 使用任何可能已定義在 LASTNAME 直欄上的索引, 來限制掃描的橫列數目。例如:
... WHERE LASTNAME LIKE '%SON'
避免在字串開頭使用這些符號,尤其是在您存取特別大的表格時。
您可以使用下列 SQL 語言環境技術,來改善執行效能。
請注意,從 OS/400 V4R2 開始,SQL 引擎有一個已備妥的陳述式快取記憶體。 使用快取記憶體,SQL 引擎會將關於已備妥的陳述式的資訊儲存在別處, 並將此資訊保存在全系統的儲存體中。然後,當再次執行相同陳述式時, 即使在不同的使用者與不同工作下,陳述式的執行速度將更快。 全系統的備妥陳述式快取記憶體為正常 SQL 處理的一部份,不需要任何使用者動作, 即可架構或啟用它。快取記憶體可能會減少靜態 SQL 蓋過動態 SQL 的任何執行效能好處。