gpt4 book ai didi

Oracle物化 View 问题

转载 作者:行者123 更新时间:2023-12-02 06:37:24 25 4
gpt4 key购买 nike

我有一个表,其中保存有关不同事件的信息,例如

CREATE TABLE events (
id int not null primary key,
event_date date, ...
)

我意识到 90% 的查询仅访问今天的事件;较旧的行将被存储以供历史记录并最终移动到存档表中。
但是,事件表仍然很大,我想知道是否可以通过创建具有类似 WHERE event_date = trunc(sysdate) 的物化 View 来提高性能。也许索引 event_date ?到底允许吗?

谢谢

最佳答案

是的,这是允许的,请参阅“主键物化 View ”:

Primary key materialized views may contain a subquery so that you can create a subset of rows at the remote materialized view site

和“复杂物化 View ”

If you refresh rarely and want faster query performance, then use Method A (complex materialized view).
If you refresh regularly and can sacrifice query performance, then use Method B (simple materialized view).

位于http://download.oracle.com/docs/cd/B10500_01/server.920/a96567/repmview.htm

在您的示例中,恕我直言,这很可能不是“复杂的物化 View ”:

CREATE MATERIALIZED VIEW events_today REFRESH FAST AS
SELECT * FROM EVENT WHERE event_date = trunc(sysdate);

只需尝试一下,看看 Oracle 是否通过 REFRESH FAST 子句接受它。

编辑 - 另一种选择:

根据您的数据库版本(企业版 + 分区)和版本 (11gR2),您可以使用名为 INTERVAL 分区的新 Oracle 功能来定义现有表中的“每日分区”。这样,您的大多数查询都会变得更快,而无需有效地复制数据 - 请参阅 http://www.oracle.com/technetwork/database/options/partitioning/twp-partitioning-11gr2-2009-09-130569.pdf

关于Oracle物化 View 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7156068/

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