.disable | .enable materialized-view
適用於: ✅Microsoft網狀架構✅Azure 數據總管
停用或啟用具體化檢視的具體化程式。
注意
由於有一些與停用/啟用具體化檢視相關聯的重要效能影響,因此請先確定您已熟悉這些檢視,再繼續進行此命令的使用。 如需詳細資訊,請參閱 啟用/停用具體化檢視 的效能影響一節。
權限
您必須至少有 具體化檢視管理員 才能執行這些命令。
語法
.enable
| disable
materialized-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 否則為 。 如果檢視已成功具體化到最後一小時(MaterializedTo ago(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)
啟用/停用具體化檢視的效能影響
- 當具體化檢視停用時,具體化將會暫停,而且不會取用資料庫中的資源。 即使已停用,也可以查詢具體化檢視,但效能可能不佳。 停用具體化檢視的效能取決於自從停用記錄以來內嵌至源數據表的記錄數目。
- 您可以啟用先前已停用的具體化檢視。 重新啟用時,具體化檢視會從它離開的點繼續具體化,而且不會略過任何記錄。 如果檢視已停用很長一段時間,可能需要很長的時間才能趕上。
- 只有在您懷疑檢視會影響資料庫健康情況時,才建議停用檢視。