Select 以有效的方式获取最新记录

Select 以有效的方式获取最新记录,select,plsql,oracle10g,sql-order-by,Select,Plsql,Oracle10g,Sql Order By,我必须在我的桌子上找到最新的记录。为此,我首先选择所有记录,然后对它们进行排序,并获得最新的100条记录。这要花很多钱。我想知道这是更好的方法吗 我使用的是oracle 10g。如果您知道这100条记录始终符合标准,您可以尝试添加一些条件,例如加载日期>“2012年1月1日”我想您是在SQL中完成这些操作的吧 SELECT * FROM ( SELECT * FROM table ORDER BY modified_date DESC ) WHERE rownum <= 100

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


我使用的是oracle 10g。

如果您知道这100条记录始终符合标准,您可以尝试添加一些条件,例如加载日期>“2012年1月1日”

我想您是在SQL中完成这些操作的吧

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

然后,您的查询应该使用此索引仅检索最新记录。如果没有,您可能还需要重新收集此表上的统计信息。

当然,只有在加载日期有索引时,这才有帮助。是的,有索引,但我没有使用任何日期标准,我只有计数,这就像邮箱一样。您为什么要将其标记为?你真的在用PL/SQL来做这件事吗?都用SQL来做!看我的答案。是的,我喜欢这个。但是,在本例中,我选择所有记录,然后对它们进行排序,得到100条记录。成本很高:/您是否创建了降序索引?
CREATE INDEX table_modified_date_desc_idx on table(modified_date DESC);