0 sql oracle oracle10g oracle11g
什么是Oracle中的物化视图?有什么用?我在网上搜索了这个主题,但我无法清楚地了解它.那么请您用一个明确的例子来解释这个主题.因此,对我来说,清楚地理解这个主题会更有用.
物化视图是RDMS提供的机制,用于交换额外的存储消耗以获得更好的查询性能.
例如,假设您有一个非常大的查询,其中有10个表连接需要很长时间才能返回数据.如果将查询转换为物化视图,则此查询的结果将自动实现到磁盘上的特殊db表中,更好的是,当添加/更新/删除行时,它们会自动反映在物化视图中.
这个方便工具的权衡是对底层表的更慢插入和更新.物化视图是Oracle恕我直言的少数救赎品质之一.
这是两个表连接的示例MATERIALIZED VIEW.
CREATE MATERIALIZED VIEW MV_Test
NOLOGGING
CACHE
BUILD IMMEDIATE
REFRESH FAST ON COMMIT
AS
SELECT V.*, P.*, V.ROWID as V_ROWID, P.ROWID as P_ROWID, (2+1) as Calc1, 'Constant1' as Const1
FROM TPM_PROJECTVERSION V
INNER JOIN TPM_PROJECT P ON P.PROJECTID = V.PROJECTID
Run Code Online (Sandbox Code Playgroud)
现在,您不必每次都运行相同的查询,只需针对新视图运行这个更简单的查询,该查询将运行得更快.非常酷的是你也可以添加派生列和计算列.
SELECT * FROM MV_Test WHERE ...
Run Code Online (Sandbox Code Playgroud)
PS
MATERIALIZED VIEWS 不是灵丹妙药,在你有一个非常慢的查询的情况下使用它们,这些查询具有经常使用的大量连接,并且读取远远超过写入.
| 归档时间: |
|
| 查看次数: |
2666 次 |
| 最近记录: |