以下の(1)のSQLと(2)のSQLで性能が全然違います。原因は明示的に「1」を取得するようにしているからなのですが、改善する方法はないでしょうか?
(1)SQL(遅い)
SELECT 1,
/*+ INDEX(T_UKERUI T_UKERUIP1) */ T.NO_UKE
FROM T_UKE T
,M_OFF O
,M_KAI K
WHERE T.CD_OFR = O.CD_OFR
AND T.CD_KAIIN = K.CD_KAIIN
AND T.CD_STS IN (3, 4)
AND T.CD_SHIP = 0001
AND T.NO_ADDNO = 0

(1)SQL(速い)
SELECT /*+ INDEX(T_UKERUI T_UKERUIP1) */ T.NO_UKE
FROM T_UKE T
,M_OFF O
,M_KAI K
WHERE T.CD_OFR = O.CD_OFR
AND T.CD_KAIIN = K.CD_KAIIN
AND T.CD_STS IN (3, 4)
AND T.CD_SHIP = 0001
AND T.NO_ADDNO = 0

このQ&Aに関連する最新のQ&A

意味 select」に関するQ&A: selectの意味

A 回答 (2件)

こんにちは。



せっかくINDEXを指定しているのに、意味が無くなってますね・・・。
(TABLE ACCESS FULL です・・・)
SELECT /*+ INDEX(T_UKERUI T_UKERUIP1) */ 1, T.NO_UKE
ではないですか?
(^^ゞ

この回答への補足

回答ありがとうございます。
「1」にもインデックスを指定しておけばよいのですね。1つ質問ですが、ひょっとして
SELECT /*+ INDEX(T_UKERUI T_UKERUIP1) */ 1, 
   /*+ INDEX(T_UKERUI T_UKERUIP1) */ T.NO_UKE
ってやらなくても1つだけでよいのですか?
今は全ての列にコメントを書いています..。

補足日時:2005/04/18 13:07
    • good
    • 0

こんにちは。



>>今は全ての列にコメントを書いています..。
???
1回でいいですよ。
(^^ゞ
    • good
    • 0
この回答へのお礼

あちゃ。やっぱりそうですか。。
すいません単純なことで。。
ありがとうございましたm(_ _)m

お礼日時:2005/04/18 15:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング