SQL 替代视图
SQL alternative to a View
我什至不知道如何索要我需要的东西。
所以我试着解释一下我的情况。
我有一个相当简单的 sql 查询,它连接了各种 table,但我需要一遍又一遍地执行条件略有不同的查询。
查询的执行时间约为 0.25 秒。
但是我需要执行的所有查询只需 15 秒即可轻松完成。
这太长了。
我需要的是一个 table 或为我保存查询结果的视图,这样我只需要 select 从这个 table 而不是加入大 table 一遍又一遍。
视图并没有真正的帮助,因为它只会一遍又一遍地执行相同的查询。据我所知
有没有办法让像视图这样的东西在其源 tables 不变的情况下保存其数据?并且仅在确实需要时才更新和执行查询?
为此,我建议使用 table 值函数。定义这样的函数需要在 PL/SQL 中进行编码,但如果该函数基于单个查询,则并不难。
您可以将此类函数视为参数化视图的一种方式。
Here 是开始了解它们的好地方。
我觉得你描述的很符合
materialized view
提交时使用快速刷新。但是,您的查询需要符合快速刷新的条件。
另一种使用方式
result_cache
- 其中一个源表更改时自动失效。我会尝试两者来决定哪一个套件更适合这项特定任务。
我什至不知道如何索要我需要的东西。 所以我试着解释一下我的情况。
我有一个相当简单的 sql 查询,它连接了各种 table,但我需要一遍又一遍地执行条件略有不同的查询。
查询的执行时间约为 0.25 秒。 但是我需要执行的所有查询只需 15 秒即可轻松完成。 这太长了。
我需要的是一个 table 或为我保存查询结果的视图,这样我只需要 select 从这个 table 而不是加入大 table 一遍又一遍。
视图并没有真正的帮助,因为它只会一遍又一遍地执行相同的查询。据我所知
有没有办法让像视图这样的东西在其源 tables 不变的情况下保存其数据?并且仅在确实需要时才更新和执行查询?
为此,我建议使用 table 值函数。定义这样的函数需要在 PL/SQL 中进行编码,但如果该函数基于单个查询,则并不难。
您可以将此类函数视为参数化视图的一种方式。
Here 是开始了解它们的好地方。
我觉得你描述的很符合
materialized view
提交时使用快速刷新。但是,您的查询需要符合快速刷新的条件。
另一种使用方式
result_cache
- 其中一个源表更改时自动失效。我会尝试两者来决定哪一个套件更适合这项特定任务。