日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了Oracle中具有快速刷新功能的實例化視圖,而不是完成大量工作(&A)的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我已經(jīng)創(chuàng)建了一個具有這樣的刷新完成的實例化視圖,并且運行良好:

CREATE MATERIALIZED VIEW VM4 
   Build immediate 
   refresh complete on commit 
AS 
select C.codecomp, 
    count(c.numpolice) as NbContrat, 
    SUM(c.montant) as MontantGlobal 
from contrat C  
group by c.codecomp;

現(xiàn)在我想創(chuàng)建一個類似的視圖,但使用快速刷新,但它不起作用,它向我顯示以下錯誤:
error

知道我已經(jīng)創(chuàng)建了對應表的日志,就像這樣:

CREATE MATERIALIZED VIEW LOG ON contrat with rowid ;

推薦答案

檢查documentation:

快速刷新的一般限制

實例化視圖的定義查詢限制如下:

實例化視圖不得包含對SYSDATE和ROWNUM等非重復表達式的引用。

實例化視圖不得包含對RAW或LONG RAW數(shù)據(jù)類型的引用。

它不能包含選擇列表子查詢。

它不能在SELECT子句中包含分析函數(shù)(例如,RANK)。

它不能引用定義了XMLIndex索引的表。

不能包含MODEL子句。

它不能包含子查詢的HAVING子句。

它不能包含具有ANY、ALL或不存在的嵌套查詢。

不能包含[以…開頭]CONNECT BY子句。

它不能包含不同站點的多個明細表。

在提交實例化視圖時不能有遠程詳細信息表。

嵌套實例化視圖必須具有聯(lián)接或聚合。

帶有GROUP BY子句的實例化聯(lián)接視圖和實例化聚合視圖不能從按索引組織的表中進行選擇。

聚合實例化視圖的快速刷新限制

使用聚合或聯(lián)接為實例化視圖定義查詢具有
以下是對快速刷新的限制:

“快速刷新的一般限制”中的所有限制。

在提交時和按需時都支持快速刷新
實例化視圖,但有以下限制:

實例化視圖中的所有表都必須有實體化視圖日志,并且實例化視圖日志必須:

包含實例化視圖中引用的表中的所有列。

指定WITH ROWID并包含新值。

如果希望表混合插入/直接加載、刪除和更新,請指定SEQUENCE子句。

僅支持SUM、COUNT、AVG、STDDEV、VARIANCE、MIN和MAX進行快速刷新。

必須指定count(*)。

聚合函數(shù)只能作為表達式的最外層出現(xiàn)。即,諸如AVG(AVG(X))或AVG(X)+AVG(X)之類的聚集體
是不允許的。

對于AVG(Expr)等每個聚合,必須存在相應的計數(shù)(Expr)。Oracle建議將SUM(EXPR)設(shè)置為
指定的。請參見將實例化視圖與一起使用的要求
匯總以了解更多詳細信息。

如果指定VARIANCE(EXPR)或STDDEV(EXPR),則必須指定COUNT(EXPR)和SUM(EXPR)。Oracle建議將SUM(EXPR*EXPR)
指定的。請參見將實例化視圖與一起使用的要求
匯總以了解更多詳細信息。

定義查詢中的SELECT列不能是包含多個基表中的列的復雜表達式。一個可能的
解決此問題的方法是使用嵌套實例化視圖。

選擇列表必須包含所有GROUP BY列。

實例化視圖不是基于一個或多個遠程表。

/li>
如果在實例化視圖日志的篩選器列中使用CHAR數(shù)據(jù)類型,則主體站點和
實例化視圖必須相同。

如果實例化視圖具有以下條件之一,則僅在傳統(tǒng)DML插入和直接DML上支持快速刷新
加載。

具有最小或最大聚合的實例化視圖

有和(Expr)但沒有計數(shù)(Expr)的實例化視圖

不帶計數(shù)的實例化視圖(*)

這樣的實例化視圖稱為僅插入實例化視圖。

如果包含MAX或MIN的實例化視圖沒有WHERE子句,則在DELETE或MIXED DML語句后可以快速刷新該實例化視圖。

刪除或混合DML后的最大/最小快速刷新與僅插入情況下的行為不同。它刪除并重新計算
受影響組的最大/最小值。你需要注意的是
其性能影響。

在FROM子句中包含命名視圖或子查詢的實例化視圖可以快速刷新,前提是這些視圖可以完全
合并了。有關(guān)合并哪些視圖的信息,請參閱Oracle數(shù)據(jù)庫
SQL優(yōu)化指南。

如果沒有外部聯(lián)接,您可以在WHERE子句中進行任意選擇和聯(lián)接。

在常規(guī)DML和直接加載之后,具有外連接的實例化聚合視圖是可快速刷新的,只要
外部表已修改。此外,唯一約束必須存在于
內(nèi)聯(lián)接表的聯(lián)接列。如果有外部連接,
所有連接必須由AND連接,并且必須使用等號(=)
運算符。

對于具有CUBE、ROLLUP、GROUPING SETS或它們的串聯(lián)的實體化視圖,適用以下限制:

選擇列表應包含分組識別符,它可以是所有GROUP BY表達式上的GROUPING_ID函數(shù),也可以是
GROUPING函數(shù)用于每個GROUP BY表達式。例如,如果
實例化視圖的GROUP BY子句是”GROUP BY CUBE(a,b)”,
則選擇列表應包含”GROUPING_ID(a,b)”或
“分組(A)和分組(B)”以使實例化視圖更快
可刷新。

GROUP BY不應導致任何重復分組。例如,”group by a,ROLLUP(a,b)”不能快速刷新,因為它
導致重復分組”(A)、(a、b)和(A)”。

我想你錯過了

必須指定count(*)。
對于AVG(Expr)等每個聚合,必須存在相應的計數(shù)(Expr)。

指定WITH ROWID并包含新值。

如果希望表混合插入/直接加載、刪除和更新,請指定SEQUENCE子句。

這篇關(guān)于Oracle中具有快速刷新功能的實例化視圖,而不是完成大量工作(&A)的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:errorMaterializedviewinoraclewithFastRefreshinsteadofcompletedosn&
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定