更快地发出sql请求
问题描述:
我收到以下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;
答
试试这个:
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
答
,如果你使用的是Oracle 12c中您可以使用OFFSET-FETCH
+
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
虽然不是很肯定的性能
但我认为'ROWNUM '是专栏名称。如果我错了,请纠正我。 –
@HamzaAnis - 不要在你的餐桌上出现一栏。 'ROWNUM'伪列返回一个数字,指示Oracle从一个表或一组连接行中选择行的顺序。检查链接以获取更多信息https://docs.oracle.com/cd/B28359_01/server.111/b28286/pseudocolumns009.htm#SQLRF00255 –
@HamzaAnis不,它是记录行的编号 – CodePuppe