我在 Oracle 数据库中有一个表,其中包含一个时间戳列 nextTime 和一个字符串列 destName。还有更多列,但在这种情况下只有这两个是相关的。我正在尝试设计一个查询,该查询将返回具有特定间隔内的 nextTime 的不同 destName,并且返回的行数最多应为一千。当间隔内有超过一千个不同的 destName 时,我希望查询返回一千行,不多也不少。
我实际上有一个正在运行的查询,但它太慢了:
select destName
from (select /*+ index(tblDestNames tbldestnames_destname)*/ distinct destName
from (select /*+ index(tblDestNames tbldestnames_nextTime)*/ destName
from tblDestNames
where nextTime < :1 and nextTime >= :2 and destName is not null))
where rownum <= 1000;
非常感谢有关如何设计更智能的查询或如何优化现有查询的任何想法。