Sql 如何加快对无法添加索引的表的查询?

Sql 如何加快对无法添加索引的表的查询?,sql,oracle,database-indexes,Sql,Oracle,Database Indexes,我通过数据库链接远程访问几个表。它们是非常标准化的,并且每个数据中的数据都是有效日期。在每个表中的数百万条记录中,只有~50k的子集是当前记录 这些表由一个商业产品进行内部管理,如果我添加索引或以任何方式对其表进行修改,它将带来巨大的好处 加快访问这些表的速度有哪些选择?归档不再是最新的数据。(或者,如果这是不可接受的,则数据超过适合您要求的过时阈值。)您需要查看计划。您可以更改连接顺序、添加条件或提供提示以加快连接速度,但如果没有解释计划,您不知道为什么连接速度慢,所以你甚至不知道你是否能加快

我通过数据库链接远程访问几个表。它们是非常标准化的,并且每个数据中的数据都是有效日期。在每个表中的数百万条记录中,只有~50k的子集是当前记录

这些表由一个商业产品进行内部管理,如果我添加索引或以任何方式对其表进行修改,它将带来巨大的好处


加快访问这些表的速度有哪些选择?

归档不再是最新的数据。(或者,如果这是不可接受的,则数据超过适合您要求的过时阈值。)

您需要查看计划。您可以更改连接顺序、添加条件或提供提示以加快连接速度,但如果没有解释计划,您不知道为什么连接速度慢,所以你甚至不知道你是否能加快速度。

你能每天把你需要的记录转储到你自己的数据库/表中吗?

我想你在这里进退两难,但在过去,以下几点对我很有效:

您可以按指定的时间间隔(每小时、每夜或任何有效的时间)下拉当前数据的快照,并根据需要将索引添加到自己的表中。如果需要实时访问数据,则可以尝试将所有当前记录拉入临时表,并根据需要编制索引


从一个数据库复制到您自己的数据库的额外开销可能会使实际好处相形见绌,但值得一试。

您可以尝试通过DB链接创建一些表的子集,然后从中查询

创建物化/索引视图怎么样?这可能会有所帮助。

索引视图是SQL Server术语,在Oracle中称为物化视图。该程序是否也会阻止分区表?因为如果不是的话,这将是一条路要走。