我通过 DB Link 远程访问多个表。它们非常规范化,每个中的数据都是有效日期的。在每个表中的数百万条记录中,只有约 50k 的子集是当前记录。
这些表由一个商业产品在内部管理,如果我添加索引或以任何方式对其表进行更改,它将非常适合。
我有哪些加快访问这些表的选项?
我通过 DB Link 远程访问多个表。它们非常规范化,每个中的数据都是有效日期的。在每个表中的数百万条记录中,只有约 50k 的子集是当前记录。
这些表由一个商业产品在内部管理,如果我添加索引或以任何方式对其表进行更改,它将非常适合。
我有哪些加快访问这些表的选项?
您可以尝试通过 DB 链接创建表的某些子集的物化视图,然后从中进行查询。
我认为您在这里陷入了困境,但在过去,以下内容对我有用:
您可以按指定的时间间隔、每小时或每晚或任何可行的方式提取当前数据的快照,并根据需要将索引添加到您自己的表中。如果您需要实时访问数据,那么您可以尝试将所有当前记录拉入临时表并根据需要进行索引。
从一个数据库复制到您自己的数据库的额外开销可能会使实际收益相形见绌,但值得一试。
您将需要查看计划。您也许可以更改连接的顺序、添加条件或提供提示以使其更快,但没有解释计划,您不知道为什么它很慢,所以您甚至不知道是否可以做到快点。
归档不再是最新的数据。(或者,如果这是不可接受的,则超出适合您要求的某个过时阈值的数据。)
你能把你需要的记录每天转储到你自己的数据库/表中吗?
如何创建物化/索引视图?这可能有点帮助。