< 手順1 >
次のテーブルを用意する。
CREATE TABLE TMP_01 (
NUM1 NUMBER
, NUM2 NUMBER);
< 手順2 >
次のレコードをINSERTする。
INSERT INTO TMP_01 VALUES( 1,0 );
INSERT INTO TMP_01 VALUES( 1,1 );
INSERT INTO TMP_01 VALUES( 1,2 );
INSERT INTO TMP_01 VALUES( 1,3 );
INSERT INTO TMP_01 VALUES( 2,0 );
INSERT INTO TMP_01 VALUES( 2,1 );
INSERT INTO TMP_01 VALUES( 2,2 );
INSERT INTO TMP_01 VALUES( 2,3 );
INSERT INTO TMP_01 VALUES( 3,0 );
INSERT INTO TMP_01 VALUES( 3,1 );
COMMIT ;
< 手順3 >
次のSELECT文を実行し、SELECTされる結果と実行計画を確認する。
(1)
SELECT NUM1, NUM2
FROM TMP_01
WHERE NUM1 = 1
OR NUM1 = 2
AND NUM2 = 0;
(2)
SELECT NUM1, NUM2
FROM TMP_01
WHERE NUM2 = 0
OR NUM1 = 1
OR NUM1 = 2;
(3)
SELECT NUM1, NUM2
FROM TMP_01
WHERE NUM1 = 1
AND NUM2 = 1
OR NUM1 = 2
AND NUM2 = 2;
< 手順4 >
次のINDEXを作成する。
CREATE INDEX TMP_01_IDX_01 ON TMP_01 ( NUM1 );
< 手順5 >
次のSELECT文を実行し、SELECTされる結果と実行計画を確認する。
(1) < 手順3 > (1) の結果と比較
SELECT NUM1, NUM2
FROM TMP_01
WHERE NUM1 = 1
OR NUM1 = 2
AND NUM2 = 0;
(2) < 手順3 > (2) の結果と比較
SELECT NUM1, NUM2
FROM TMP_01
WHERE NUM2 = 0
OR NUM1 = 1
OR NUM1 = 2;
(3) < 手順3 > (3) の結果と比較
SELECT NUM1, NUM2
FROM TMP_01
WHERE NUM1 = 1
AND NUM2 = 1
OR NUM1 = 2
AND NUM2 = 2;
|