问题标签 [materialized]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
33 浏览

oracle - 为什么物化视图的 DDL 会出错?

我正在尝试创建如下的物化视图并出现错误,请告知。

甲骨文版本:12.2.0.1.0

0 投票
0 回答
58 浏览

oracle - Oracle 版本 19 上的快速刷新物化视图

我正在使用 Oracle 版本 19.0,并希望使用具有快速提交或按需刷新的物化视图。

我的基于表包含 XMLTypes 中的列

我想知道列类型 XMLTypes 是否支持 FAST REFRESH。

xml 示例:

源表 -id nmber, -xml XMLTpes

我的物化视图代码

非常感谢,

0 投票
1 回答
444 浏览

oracle - 物化视图创建速度很快,但在 Oracle 19c 上刷新需要数小时

最近需要在Oracle 19c上创建几个物化视图,所有的基表都位于远程oracle数据库上,查询使用dblink连接表,不允许快速刷新。他们中的大多数可以在添加一些提示后在几秒钟内完成刷新,比如 use_hash 等。但是当在查询上创建一个带有 union 的提示时,提示根本不起作用,幸运的是只有一个 union,所以我拆分了查询分为两个部分,但另一个问题出现了,其中一个物化视图的创建时间不超过10秒,但需要数小时甚至数天都无法完成刷新。我在网上搜索并得到以下答案:

  1. 使用 dbms_mview.refresh(mv_name, 'C', atomic_refresh=>false)。此解决方案不起作用。
  2. 快速刷新。该解决方案不允许。
  3. 而不是刷新,每次都重新创建物化视图,这是一种解决方法,但不是解决方案。
  4. 使用提示 optimizer_features_enable(9.0.0),我在表上模拟了问题(因为我无法在物化视图上插入...选择...),似乎提示确实有效,但是当我尝试将提示应用到物化视图,从执行计划中可以看出提示已被忽略。我还尝试在 dbms_refresh.refresh(mv_name) 之前的调度程序作业上添加 alter session set optimizer_features_enable='9.0.0',但它不起作用。想知道有没有人对这个问题有任何想法?谢谢你。
0 投票
0 回答
47 浏览

postgresql - 尝试连接到 postgresql 时连接被拒绝

#Edit 抱歉,它没有连接到 PostgreSQL,但我正在尝试连接到物化 shell,但出现如下错误

我该如何解决这个问题?

谢谢。

0 投票
2 回答
27 浏览

oracle - 创建实体化视图时出现 ORA-00600

我正在尝试创建一个物化视图,例如使用以下内容:

但它给了我一个 ORA-00600 并用通常的断开错误断开我的连接:

我们正在运行 Oracle 12c。以这种方式创建物化视图和使用 order by 子句是否存在一些错误?

0 投票
0 回答
24 浏览

sql - 物化视图与表格 - 性能

我对 Redshift 很陌生,但在 BI 领域有相当多的经验。我需要专业的 Redshift 开发人员的帮助。这是我的情况:我在 Redshift 中添加了一个外部 (S3) 数据库。这将遭受非常频繁的变化,大约。每 15 分钟一次。我将直接从 Qlik Sense 对这个外部数据库运行大量并发查询。正如最佳实践所说,当较小的表驻留在 Redshift 中时,Redshift + Spectrum 效果最好,我决定将一些计算维度表移动到本地,并将外部表留在 S3 中。我面临的挑战是它是否更适合为此或表使用物化视图。

我已经用 DIST STYLE = ALL 和正确的 SORT KEY 测试了两者,测试表明 MV 更快。我只是不明白为什么会这样。考虑到维度表相当小(<3 百万行),我有以下问题:

  • 我们应该使用 MV 并通过计划任务刷新它们还是使用表并通过存储过程(也许)执行某种形式的 ETL 来刷新它。
  • 如果使用表:我尝试将 varchar 键(在连接中大量使用)强制转换为 bigint 以强制编码为 AZ64,但查询的性能比不进行转换(其中 encode=LZO)更差。这是因为在外部数据库中它存储为 varchar 吗?
  • 如果使用 MV:我也尝试在 MV 后面的查询中进行上述转换,但编码显示为 NONE(通过检查在场景后面创建的表来确定)。此外,即使没有强制转换,连接中使用的大多数键列也没有编码。可能这就是 MV 比 table 快的原因吗?我不应该期待相反的情况 - 没有编码 = 性能更差吗?

更多信息:在 S3 中,我们以 parquet 文件的形式存储,并进行了适当的分区。在 Redshift 中,这些表是根据与 S3 分区相同的列以及更多列进行排序的。并且所有查询都以相同的顺序对这些列使用连接,并且还在这些列的 where 子句中使用过滤器。所以查询结构良好。

如果您需要任何其他详细信息,请告诉我。