2017-08-09 16 views
0

次のようなSQLリクエストがあり、より速く動作するかどうかは疑問です。私はここで何を変えることができますそれを少し加速する?現在、0.24秒間実行されています。SQLリクエストの高速化

SELECT RECNO 
FROM (SELECT T.ID, T.RECNO, T.STATE, T.TYPEID 
     FROM SOME_TABLE T 
     ORDER BY T.ID) 
WHERE ROWNUM = 1 AND TYPEID = 123123 AND STATE = 123; 

答えて

0

これを試してみてください:

SELECT RECNO 
FROM (SELECT T.ID, T.RECNO, T.STATE, T.TYPEID 
     FROM SOME_TABLE T 
     where TYPEID = 123123 AND STATE = 123 
     ORDER BY T.ID) a 
    WHERE ROWNUM = 1 
0

は、Oracle 12cの+

SELECT * FROM SOME_TABLE T 
Where TYPEID = 123123 AND STATE = 123; 
ORDER BY T.ID   
FETCH NEXT 1 ROWS ONLY --OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY 

もののを使用している場合はOFFSET-FETCHを使用することができ、パフォーマンスについては非常にわからない

+0

しかし、私は 'ROWNUM考えます'は列の名前です。私が間違っていれば私を訂正してください。 –

+1

@ HamzaAnis - テーブルに列がありません。 'ROWNUM' pseudocolumnは、Oracleがテーブルまたは結合された行のセットから行を選択する順序を示す数字を返します。詳細はリンクを確認してくださいhttps://docs.oracle.com/cd/B28359_01/server.111/b28286/pseudocolumns009.htm#SQLRF00255 –

+0

@HamzaAnisいいえ、レコード行の番号です – CodePuppe