gpt4 book ai didi

oracle - 缓存 View 时设置过期时间

转载 作者:行者123 更新时间:2023-12-04 12:52:10 26 4
gpt4 key购买 nike

我想从 Oracle 中的 View 缓存结果。我的观点声明为:

CREATE VIEW SOME_VIEW AS
SELECT
/*+ RESULT_CACHE */
u.name
c.info
FROM
Users u
LEFT OUT JOIN Contacts c ON c.user_id = u.id

现在我想为这个 View 显式设置缓存过期时间。如果我没理解错,过期适用于 cache globaly .

是否可以设置每个查询的到期时间?

最佳答案

结果集缓存将查询的结果集存储在内存中。任何返回此结果集(或其子集)的查询都会命中缓存而不是数据库。缓存的生命周期是从第一次执行源查询到通过 DML 更改底层表。这使得 /*+ RESULT_CACHE */提示非常适合执行成本高(或经常执行)的查询,以及从数据不经常更改的表中进行选择的查询。

因此,我们没有任何机制可以使结果集缓存无效:数据库为我们无形地管理它。尽管如此,如果您真的想定期使缓存无效(您的数据库表现不佳或其他原因),也许您可​​以安排一项作业对 View 所依赖的表之一执行无意义的更新:

update Contacts c
set c.user_id = c.user_id + 0

关于oracle - 缓存 View 时设置过期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41439436/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com