共用方式為


.disable | .enable materialized-view

適用於: ✅Microsoft網狀架構Azure 數據總管

停用或啟用具體化檢視的具體化程式。

注意

由於有一些與停用/啟用具體化檢視相關聯的重要效能影響,因此請先確定您已熟悉這些檢視,再繼續進行此命令的使用。 如需詳細資訊,請參閱 啟用/停用具體化檢視 的效能影響一節。

權限

您必須至少有 具體化檢視管理員 才能執行這些命令。

語法

.enable | disablematerialized-view MaterializedViewName

深入瞭解 語法慣例

參數

姓名 類型​​ 必要 描述
MaterializedViewName string ✔️ 具體化檢視的名稱。

傳回

如果具體化檢視已經處於命令嘗試設定為的狀態,則命令會失敗,並出現錯誤,指出情況。

否則,它會傳回已變更 IsEnabled 屬性之具體化檢視的詳細數據。

輸出架構:

名稱 類型​​ Description
名稱 string 具體化檢視的名稱。
SourceTable string 定義檢視的來源數據表名稱。
Query string 具體化檢視的查詢定義。
MaterializedTo datetime 源數據表中具體化ingestion_time() 時間戳上限。 如需詳細資訊,請參閱 具體化檢視的運作方式。
LastRun datetime 上次執行具體化的時間。
LastRunResult string 上次執行的結果。 傳 Completed 回成功執行,否則 Failed傳回 。
IsHealthy bool true 當檢視視為狀況良好時, false 否則為 。 如果檢視已成功具體化到最後一小時(MaterializedToago(1h)大於 ),則檢視會視為狀況良好。
IsEnabled bool true 啟用檢視時(請參閱 停用或啟用具體化檢視)。
Folder string 建立具體化檢視的資料夾。
DocString string 指派給具體化檢視的描述。
AutoUpdateSchema bool 是否啟用檢視以進行自動更新。
EffectiveDateTime datetime 檢視的有效日期時間,在建立期間決定 (請參閱 .create materialized-view)。
回顧 timespan 時間範圍會限制預期重複項目的時間週期。

範例

啟用具體化檢視

下列命令會啟用具體化檢視 ViewName:

.enable materialized-view ViewName

輸出

名稱 SourceTable Query MaterializedTo LastRun LastRunResult IsHealthy IsEnabled Folder DocString AutoUpdateSchema EffectiveDateTime 回顧
ViewName TableName TableName |summarize arg_max(Column3, *) by Column1 2023-02-26T16:40:03.3345704Z 2023-02-26T16:44:15.9033667Z 已完成 true true false 2023-02-23T14:01:42.5172342Z

停用具體化檢視

下列命令會停用具體化檢視 ViewName:

.disable materialized-view ViewName

輸出

名稱 SourceTable Query MaterializedTo LastRun LastRunResult IsHealthy IsEnabled Folder DocString AutoUpdateSchema EffectiveDateTime 回顧
ViewName TableName TableName |summarize arg_max(Column3, *) by Column1 2023-02-26T16:40:03.3345704Z 2023-02-26T16:44:15.9033667Z 已完成 true false false 2023-02-23T14:01:42.5172342Z

備註

停用具體化檢視

具體化檢視可以透過下列任何方式停用:

  • 系統自動停用: 如果具體化失敗,就會自動停用具體化檢視,並出現永久錯誤。 此程式可能發生在下列實例中:
    • 與檢視定義不一致的架構變更。
    • 造成具體化檢視查詢語意無效之源數據表的變更。
  • 明確停用具體化檢視: 如果具體化檢視對資料庫的健康情況造成負面影響(例如耗用太多 CPU),請使用 .disable materialized-view 命令停用檢視。

具體化檢視和數據列層級安全性

如果具體化檢視已停用,而且當檢視停用時,有人在檢視的源數據表上定義 數據列層級安全 策略,但具體化檢視並未定義數據列層級安全策略,則啟用檢視會因為安全性原因而失敗。 若要減輕這個錯誤,您可以:

  • 定義具體化檢視的數據列層級安全策略。
  • 選擇將 屬性新增 allowMaterializedViewsWithoutRowLevelSecurity 至啟用原則命令,以忽略錯誤。 例如:
    .enable materialized-view MV with (allowMaterializedViewsWithoutRowLevelSecurity=true)

啟用/停用具體化檢視的效能影響

  • 當具體化檢視停用時,具體化將會暫停,而且不會取用資料庫中的資源。 即使已停用,也可以查詢具體化檢視,但效能可能不佳。 停用具體化檢視的效能取決於自從停用記錄以來內嵌至源數據表的記錄數目。
  • 您可以啟用先前已停用的具體化檢視。 重新啟用時,具體化檢視會從它離開的點繼續具體化,而且不會略過任何記錄。 如果檢視已停用很長一段時間,可能需要很長的時間才能趕上。
  • 只有在您懷疑檢視會影響資料庫健康情況時,才建議停用檢視。