91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SSIS 中怎么實現延遲驗證

發布時間:2021-08-03 17:19:45 來源:億速云 閱讀:109 作者:Leah 欄目:數據庫

今天就跟大家聊聊有關SSIS 中怎么實現延遲驗證,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

一,延遲驗證屬性

延遲驗證屬性作用于Package,Task,容器(Container)和鏈接管理器(Connection Manager),默認情況下,禁用延遲驗證,這就意味著,在Package執行時,首先驗證Package,Task,容器和鏈接管理器引用的對象是否有效,如果有任何對象不存在,那么驗證失敗,Package停止運行。

在Package開始執行之前,驗證Package,能夠盡早發現錯誤,避免浪費系統資源去執行一個必定會失敗的Package,合理配置,會帶來性能的優化。

二,驗證方式

按照驗證的執行順序來看,Package包含兩種類型的驗證方式:

Package Validation:在Package執行時,首先驗證Package及其包含的所有組件,是Package級別的驗證;

組件驗證:組件級別的驗證,包含Task , Connection Manager和Container,在組件開始執行之前,驗證組件中引用對象的有效性。

驗證分為兩個階段(Phrase),首先進行Package級別的驗證,而后進行組件級別的驗證:

Package級別的驗證包含組件級別的驗證,如果禁用延遲驗證,那么組件級別的驗證會執行兩次,這在設計Package時,不是一個好的選擇,這會增加Package的驗證時間,還會增加每一次打開Package進行編輯的時間。而啟用延遲驗證,這會禁用了Package 級別的驗證,以至于在Package的設計時(design-time),只執行組件級別的驗證,注意,任何情況下,無法禁用組件級別的驗證。

通常情況下,對一個完成開發的Package啟用延遲驗證,是一個好的選擇,這會減少Package整體的執行時間,因為跳過了Package級別的驗證。

1,禁用延遲驗證

禁用Package的延遲驗證,需要設置Package的DelayValidation屬性值為False,默認情況下,Packag會禁用延遲驗證,如下圖所示:

那么在Package開始運行之后,第一件事就是開始執行Package Validation,當Package級別的驗證操作完成之后,開始驗證Package包含的各個Task等,如果驗證發現錯誤,Package不會被執行,直接報錯。

2,啟用延遲驗證

啟用Package的延遲驗證,需要設置Package的DelayValidation屬性值為True,如下圖所示:

當啟用延遲驗證時,Package會執行下去,知道運行到特定的組件時,才會執行組件驗證,如果組件驗證失敗,那么拋出錯誤消息,停止Package的運行。

組件驗證發生真正執行組件,如果上流組件新建一個暫存表(staging table),下游組件引用該暫存表,并不會出現異常,這是因為在該組件進行驗證時,該暫存表已經存在。

三,延遲驗證屬性的層次結構

在Package級別上設置DelayValidation屬性并不能阻止打開Package時的最初的驗證過程,它只是在運行包時延遲Package級別的驗證,這就意味著Package將繼續運行,但是當打開Package時警報仍然出現。如果想阻止打開Package時的驗證,那么必須把Task級別上的DelayValidation屬性設置為True。

避免驗證鏈接管理器,有時,是一個非常節省開發時間的選擇。有時打開Package的過程會花費很長的時間,這可能是因為它引用了一個遠程數據源,而數據源的響應很緩慢,或者鏈接不上。如果我們正在開發一個包,并且需要經常打開這個包,那么我們可能需要花費很長的時間來等待SSIS驗證一個數據源。在這樣的情況下,在任務級設置DelayValidation屬性為True可以為我們節省大量的時間。

示例1,驗證操作只會驗證屬性的完整性

設置Package Level的屬性DelayValidation=False,Task Level的屬性DelayValidation=False

Package的處理流程如下圖所示,Package級別的Validation在Create Staging Table的Validation之前開始,在Insert Data的Validation之后結束,從圖中能看到Insert Data的驗證完成,實際上,驗證操作并沒有檢查出一個非常簡單的語法錯誤,直到Task真正執行時,才發現錯誤,這說明,驗證操作只會驗證Task屬性的完整性,效果是有限的。

示例2,驗證操作會驗證引用的對象是否存在

設置Package Level的屬性DelayValidation=False,Task Level的屬性DelayValidation=False,在Data Flow Task中,OLE DB Source組件從一個當前不存在的表dbo.delay_test中selelct數據:

在執行Package時,SSIS彈出“Package Validation Error”窗體,這就是Package級別上的驗證發現的錯誤:

設置Package Level的屬性DelayValidation=False,Task Data Flow Task的屬性DelayValidation=True,重新執行,Package成功執行。

示例3,打開package的驗證

設置Package Level的屬性DelayValidation=True,Task Level的屬性DelayValidation=False,在打開Package時,Task Data Flow Task上面是有紅色X號的,當設置Task Level的屬性DelayValidation=True時,在打開package時,Task Data Flow Task上面的紅色X符號消失,這說明,在打開Package時,驗證操作已經開始,并且Task 級別的驗證屬性會覆蓋上層的驗證。

以上三個示例說明,在打開Package,設計Package和運行Package時,SSIS引擎都會對Package進行驗證,并且Package的驗證操作是

看完上述內容,你們對SSIS 中怎么實現延遲驗證有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

夹江县| 大荔县| 左云县| 景东| 乌兰察布市| 子洲县| 吉安县| 平定县| 凤翔县| 常熟市| 瑞丽市| 镇江市| 邵东县| 海城市| 缙云县| 青川县| 周至县| 嘉峪关市| 石城县| 曲阜市| 曲麻莱县| 赞皇县| 武川县| 温宿县| 基隆市| 息烽县| 资中县| 嘉鱼县| 瓦房店市| 平利县| 新乡市| 巴林右旗| 乌鲁木齐县| 德阳市| 潞城市| 咸宁市| 牙克石市| 尉氏县| 吉木萨尔县| 南康市| 德庆县|