0

我必须得到我表中的最新记录。为此,我首先选择所有记录,然后对它们进行排序并获取最新的 100 条记录。这要花很多钱。我想知道这是一个更好的方法吗?

我正在使用oracle 10g。

4

2 回答 2

0

如果您知道这 100 条记录将始终满足条件,您可以尝试添加一些条件,例如 load_date > '01-Jan-2012'

于 2012-10-22T08:58:09.187 回答
0

我想你是在 SQL 中做这一切的吗?

SELECT * FROM (
  SELECT *
  FROM table
  ORDER BY modified_date DESC
)
WHERE rownum <= 100;

您可以做的一件事是在“modified_date”上创建一个降序索引:

CREATE INDEX table_modified_date_desc_idx on table(modified_date DESC);

那么你的查询应该使用这个索引来只检索最新的记录。如果不是,您可能还必须重新收集此表的统计信息。

于 2012-10-22T09:06:05.650 回答