Questions tagged «materialized-view»

物化视图的定义类似于视图,但拥有像表一样的持久数据,是包括Oracle,DB2和postgres在内的许多RDBMS的功能。SQL Server具有一个称为“索引视图”的相似功能,该功能被认为足以包含在此标记下。

1
从不同表中使用ORDER BY选择TOP 1时如何设置索引视图
我正在努力在以下情况下设置索引视图,以便在执行以下查询时不会进行两次聚集索引扫描。每当我为该查询创建索引视图然后使用它时,它似乎都会忽略我在其上放置的任何索引: -- +++ THE QUERY THAT I WANT TO IMPROVE PERFORMANCE-WISE +++ SELECT TOP 1 * FROM dbo.TB_test1 t1 INNER JOIN dbo.TB_test2 t2 ON t1.PK_ID1 = t2.FK_ID1 ORDER BY t1.somethingelse1 ,t2.somethingelse2; GO 表格设置如下: 两张桌子 它们由上面的查询通过内部联接联接 并按上面的查询从第一个表开始的列排序,然后从第二个表开始的列排序;仅选择TOP 1 (在下面的脚本中,还有一些行可以生成测试数据,以防万一有助于重现问题) -- +++ TABLE SETUP +++ CREATE TABLE [dbo].[TB_test1] ( [PK_ID1] [INT] IDENTITY(1, …

2
为什么在Oracle 11gR2中,不能用创建它的同一用户删除物化视图?
我与DI_TEST_AL用户一起创建了一个物化视图,命名为MY_MVIEW。它在USER_OBJECTS表中显示为MATERIALIZED VIEW,我尝试将其删除,我收到一条成功消息,但该对象仍然存在。实际上,如果我尝试重新创建它,则会收到类似“对象已存在”的错误。 我看到有一个同名的表属于另一个模式。我认为这不会引起问题,但我想提一提。 这是SQL * Plus的输出: SQL*Plus: Release 11.2.0.1.0 Production on Mon Aug 1 17:01:50 2011 SQL> select object_name, object_type, owner from all_objects where object_name = 'MY_MVIEW'; OBJECT_NAME OBJECT_TYPE OWNER ----------- ----------------- ---------- MY_MVIEW MATERIALIZED VIEW DI_TEST_AL MY_MVIEW TABLE DIDEV11 SQL> DROP MATERIALIZED VIEW MY_MVIEW; Materialized view dropped. SQL> select …


1
为什么READPAST提示导致索引视图被忽略?
我正在研究使用READPAST提示来减少应用程序财务子系统中的资源锁定。 这似乎是个好方法,因为金融交易记录仅被添加,从未更新或删除。唯一会被跳过的行是在事务内部插入的全新行。在交易落实之前,它们实际上不存在于外界。 但是,我注意到使用READPAST提示的索引视图的查询性能较差。比较查询计划时,它看起来像是带有提示,查询优化器选择不使用索引视图,而是退回到将其视为常规视图。 我不确定为什么会这样。我想象索引视图与任何其他索引一样,可以在操作期间锁定键,并且添加操作READPAST也可以类似。 SELECT TOP 1 isa.InvoiceId FROM Financial_InvoiceSummaryAmounts isa WITH (READPAST) WHERE isa.TotalOwedAmount = 0.0 SELECT TOP 1 isa.InvoiceId FROM Financial_InvoiceSummaryAmounts isa WHERE isa.TotalOwedAmount = 0.0 添加NOEXPAND提示似乎也可以,但是我有兴趣了解更多有关为什么可能READPAST导致查询优化器首先做出选择的原因(作为完整答案的一部分)。


2
限制重做以实例化视图完全刷新或手动等效
物化视图(MV)日志可用于允许MV执行快速刷新,该刷新仅修改已更改的数据。但是,各种情况都会阻止MV使用日志,因此需要完全刷新。Oracle实现了原子的完全刷新,作为每个记录的删除和插入。即使最终数据没有变化,它也会这样做。 有没有办法使这种复制在重做生成方面变得智能化?合并后跟删除要求将源查询两次。批量收集数据进行批量合并和删除是否值得?有没有更好的办法? 更新: 我探索了使用全局临时表作为暂存区。尽管他们使用的重做少于一半,但仍然使用很多。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.