我必须得到我表中的最新记录。为此,我首先选择所有记录,然后对它们进行排序并获取最新的 100 条记录。这要花很多钱。我想知道这是一个更好的方法吗?
我正在使用oracle 10g。
我必须得到我表中的最新记录。为此,我首先选择所有记录,然后对它们进行排序并获取最新的 100 条记录。这要花很多钱。我想知道这是一个更好的方法吗?
我正在使用oracle 10g。
如果您知道这 100 条记录将始终满足条件,您可以尝试添加一些条件,例如 load_date > '01-Jan-2012'
我想你是在 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);
那么你的查询应该使用这个索引来只检索最新的记录。如果不是,您可能还必须重新收集此表的统计信息。