Oracle物化视图问题

2023-12-24

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

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

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

Thanks


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

主键物化视图可能包含子查询,以便您可以 在远程物化视图站点创建行的子集

和“复杂物化视图”

如果您很少刷新并且想要更快的查询性能,那么使用 方法A(复杂物化视图)。
如果定期刷新并且会牺牲查询性能,则使用方法 B(简单物化视图)。

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

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

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

只需尝试一下,看看 Oracle 是否接受它REFRESH FAST clause.

编辑-另一个选择:

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle物化视图问题 的相关文章

随机推荐

  • 从客户端控制器指定 Mongo 查询参数 (MEAN.JS)

    我正在使用 MongoDB Angular Express 和 Node MEAN 堆栈 构建一个应用程序 我使用 MEAN JS 生成器来构建我的应用程序 我将使用文章模块作为参考 假设我的文章集合中有 7000 条记录 并且每条记录都有
  • 如何在 Android 中使用新的 Dialogflow SDK V2

    我对迁移到 Dialogflow V2 有点困惑 我有一个 Android 应用程序使用https github com dialogflow dialogflow android client https github com dialo
  • 交互式地处理占用大量内存的列表对象

    我最近发现了包裹的奇妙之处bigmemory ff and filehash处理非常大的矩阵 如何处理非常大 300MB 的列表 在我的工作中 我每天都在处理这些列表 我可以用创可贴解决方案save load 黑客无处不在 但我更喜欢big
  • 为什么在 Python 中 math.floor(x/y) != x // y 表示两个可整除的浮点数?

    我一直在阅读有关Python中的除法和整数除法以及Python2与Python3中的除法之间的差异 在大多数情况下 这一切都是有道理的 Python 2 仅当两个值都是整数时才使用整数除法 Python 3 始终执行真除法 Python 2
  • 动态 SVG 图像生成问题

    我正在尝试编写一个服务器端脚本 PHP 来根据用户输入生成 SVG 图像 我正在使用以下代码
  • 跨多个微服务的 2PC 分布式事务?

    I read some information about 2 Phase Commit XA distributed transactions and how JTA does support it Seems to be that th
  • 需要一个通过属性配置 log4j RollingFileAppender 的工作示例

    我使用 log4j 进行日志记录 并使用属性文件进行配置 目前 我的日志文件太大 3 5 GB 对于日志文件来说太大了 所以think我需要使用 RollingFileAppender 但当我这样做时 日志文件继续变得过大 我相信我只是配置
  • 合并接口时覆盖 TypeScript 中的“any”

    我正在使用 Express 并且我正在尝试明确定义res locals 在 types express包中 Express Response locals是any 所以我似乎无法覆盖它 类型 express index d ts decla
  • Python 中的构造函数 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我需要帮助编写 Python 构造函
  • 使用对象包装器来扩展 JavaScript DOM?

    我正在尝试向 JavaScript DOM 添加简单的函数 例如一个addClass函数 我首先使用以下代码实现了它 Element prototype addClass function className this className
  • 从目录中删除所有 git 文件?

    我有一个受版本控制的文件夹 我想复制它以发送 但不想包含所有 git 目录及其下面的文件 有没有办法删除所有 git 文件 而不是手动删除所有文件 如何全部删除 gitLinux 中文件夹下的目录 运行这个 find 命令 它将列出所有 g
  • $提供外部配置块

    我当然遗漏了有关注射器的一些基本点 但我无法理解为什么会这样 angular module app config function provide and this angular module app config function in
  • Pycharm环境与命令行不同

    我在使 Pycharm 环境与命令行上的环境匹配时遇到问题 我最近删除了 python 并通过 homebrew 重新安装了它 我的路径中的 python 指向 usr local bin python我添加了PATH usr local
  • 如何在 C# 中保持单个 SQL Server 连接实例对多个请求打开?

    我有一个 Web API 其中包含 C 中的数据库插入逻辑 ado net 当多个用户 例如 100 个用户 调用 Web API 时 每次都会针对多个请求打开和关闭 SQL Server 连接 它会降低性能 如何为多个请求保持单个 SQL
  • 如何将 exe 输出分配给 gitlab ci 脚本中的变量?

    运行 gitlab ci 时 我需要检查指定的 svn 目录是否存在 我正在使用脚本 variables DIR CHECK default stages setup test otherDebugJob csharp only chang
  • 向一个表插入多行还是向多个表分别插入行?

    我有两个数据库表 SQL CE ATeacher表和一个AClass桌子 这两个表具有一对多关系 其中一名教师有多个班级 即Class有外键教师 ID 教师数 行数 是通过 C 代码在运行时插入 或生成 的 因此班级数也是如此 INSERT
  • getAvailableBlocksLong() * getBlockSizeLong() VS getAvailableBytes()

    编辑 我在测试中确实犯了一个愚蠢的错误 我在不知情的情况下在这里问了一个问题 答案是 两者是一样的 但我把我的帖子留给其他人 有什么区别getAvailableBlocksLong getBlockSizeLong and getAvail
  • 使用 System.Threading.Timer 和 Monitor 进行线程安全执行

    Using a System Threading Timer导致线程从ThreadPool 这意味着如果计时器的执行间隔到期 而线程仍在按先前请求的顺序处理 则相同的回调将被委托在另一个线程上执行 在大多数情况下 这显然会导致问题 除非回调
  • \x 在替换中不起作用

    我正在尝试解码 unicode 字符 所以我只是尝试了十六进制转义序列 x 在正则表达式替换中e use LWP Simple my k get url my kv map js call k now kv data is https so
  • Oracle物化视图问题

    例如 我有一个表 其中包含有关不同事件的信息 CREATE TABLE events id int not null primary key event date date 我意识到 90 的查询仅访问今天的事件 较旧的行将被存储以供历史记