2.24.4 SQL最適化指定の例
SQL最適化指定の使用例を次に示します。
-
SELECT文中に,使用インデクスのSQL最適化指定を指定します。このとき,在庫表(ZAIKO)の検索に,インデクス(IDX1)を使用します。
SELECT SNAME FROM ZAIKO WITH INDEX (IDX1) WHERE TANKA <= 500
-
SELECT文中に,使用インデクスのSQL最適化指定を指定します。このとき,在庫表(ZAIKO)の検索に,複数のインデクス(IDX1,IDX2)を使用します。
SELECT SNAME FROM ZAIKO WITH INDEX (IDX1,IDX2) WHERE TANKA <= 500 OR ZSURYO > 100
-
SELECT文中に,使用インデクスのSQL最適化指定を指定します。このとき,在庫表(ZAIKO)定義時に,PRIMARY KEYを指定して定義されたインデクスを使用します。
SELECT SNAME FROM ZAIKO WITH INDEX (PRIMARY KEY) WHERE TANKA <= 500
-
SELECT文中に,使用インデクスのSQL最適化指定を指定します。このとき,在庫表(ZAIKO)の検索に,インデクス利用を抑止(テーブルスキャン)します。
SELECT SNAME FROM ZAIKO WITHOUT INDEX WHERE TANKA <= 500
-
SELECT文中に,結合方式のSQL最適化指定を指定します。このとき,内結合の結合方式を,ネストループジョインにします。
SELECT ZAIKO.SCODE,ZAIKO.SNAME,JUTYU.TCODE FROM ZAIKO INNER JOIN BY NEST JUTYU ON ZAIKO.SCODE = JUTYU.SCODE
-
SELECT文中に,結合方式のSQL最適化指定を指定します。このとき,外結合の結合方式を,ハッシュジョインにします。
SELECT ZAIKO.SCODE,ZAIKO.SNAME,JUTYU.TCODE FROM ZAIKO LEFT OUTER JOIN BY HASH JUTYU ON ZAIKO.SCODE = JUTYU.SCODE
-
SELECT文中に,結合方式のSQL最適化指定を指定します。このとき,内結合(INNER省略)の結合方式を,マージジョインにします。
SELECT ZAIKO.SCODE,ZAIKO.SNAME,JUTYU.TCODE FROM ZAIKO JOIN BY MERGE JUTYU ON ZAIKO.SCODE = JUTYU.SCODE
-
SELECT文中に,副問合せ実行方式のSQL最適化指定を指定します。このとき,副問合せの実行方式を,ハッシュ実行にします。
SELECT SNAME FROM ZAIKO WHERE SCODE =ANY (HASH SELECT SCODE FROM JUTYU WHERE TCODE = '302S')
-
SELECT文中に,副問合せ実行方式のSQL最適化指定を指定します。このとき,副問合せの実行方式を,ハッシュ実行以外(この例では,作業表実行,又は作業表ATS実行となる)にします。
SELECT SNAME FROM ZAIKO WHERE SCODE =ANY (NO HASH SELECT SCODE FROM JUTYU WHERE TCODE = '302S')
-
使用インデクスのSQL最適化指定を,「/*>>」と「<<*/」で囲んで指定します。
SELECT SNAME FROM ZAIKO /*>> WITH INDEX (IDX1) <<*/ WHERE TANKA <= 500
-
結合方式のSQL最適化指定を,「/*>>」と「<<*/」で囲んで指定します。
SELECT ZAIKO.SCODE,ZAIKO.SNAME,JUTYU.TCODE FROM ZAIKO INNER JOIN /*>> BY NEST <<*/ JUTYU ON ZAIKO.SCODE = JUTYU.SCODE
-
副問合せ実行方式のSQL最適化指定を,「/*>>」と「<<*/」で囲んで指定します。
SELECT SNAME FROM ZAIKO WHERE SCODE =ANY (/*>> HASH <<*/ SELECT SCODE FROM JUTYU WHERE TCODE = '302S')
-
SELECT文中に,結合方式のSQL最適化指定と使用インデクスのSQL最適化指定を指定します。このとき,在庫表(ZAIKO)の検索にインデクス(IDX3)を使用し,内結合(INNER省略)の結合方式をハッシュジョインにします。
SELECT ZAIKO.SCODE,ZAIKO.SNAME,JUTYU.TCODE FROM ZAIKO WITH INDEX (IDX3) JOIN BY HASH JUTYU ON ZAIKO.SCODE = JUTYU.SCODE
-
SELECT文中に,結合方式のSQL最適化指定と使用インデクスのSQL最適化指定を,それぞれ「/*>>」と「<<*/」で囲んで指定します。このとき,在庫表(ZAIKO)の検索にインデクス(IDX3)を使用し,内結合(INNER省略)の結合方式をハッシュジョインにします。
SELECT ZAIKO.SCODE,ZAIKO.SNAME,JUTYU.TCODE FROM ZAIKO /*>> WITH INDEX (IDX3) <<*/ JOIN /*>> BY HASH <<*/ JUTYU ON ZAIKO.SCODE = JUTYU.SCODE