亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SSIS 延遲驗(yàn)證方法

 更新時(shí)間:2018年01月19日 08:52:54   作者:悅光陰  
下面小編就為大家分享一篇SSIS 延遲驗(yàn)證方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

驗(yàn)證是一個(gè)事件,該事件在Package執(zhí)行時(shí),第一個(gè)被觸發(fā),驗(yàn)證能夠避免SSIS引擎執(zhí)行一個(gè)有異常的Package或Task。延遲驗(yàn)證(DelayValidation)是把驗(yàn)證操作延遲到Package真正運(yùn)行(run-time)時(shí)開始執(zhí)行,當(dāng)禁用延遲驗(yàn)證時(shí),一旦驗(yàn)證操作返回錯(cuò)誤(Error)或警告(Warning),Package就不會(huì)繼續(xù)執(zhí)行下去。在更新海量的數(shù)據(jù)時(shí),通常需要用到暫存表把遠(yuǎn)端數(shù)據(jù)加載到本地,這就需要在Package執(zhí)行之后,創(chuàng)建暫存表(staging table);在Package執(zhí)行之后,刪除暫存表,當(dāng)禁用延遲驗(yàn)證時(shí)。當(dāng)禁用延遲驗(yàn)證時(shí),驗(yàn)證操作在Package執(zhí)行之前,會(huì)檢測(cè)暫存表是否存在,由于暫存表需要在Package執(zhí)行之后創(chuàng)建,因此,驗(yàn)證事件發(fā)出錯(cuò)誤消息,Package停止運(yùn)行,這對(duì)這種情況,必須使用延遲驗(yàn)證,在真正引用到暫存表時(shí),延遲暫存表是否存在。

一,延遲驗(yàn)證屬性

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

在Package開始執(zhí)行之前,驗(yàn)證Package,能夠盡早發(fā)現(xiàn)錯(cuò)誤,避免浪費(fèi)系統(tǒng)資源去執(zhí)行一個(gè)必定會(huì)失敗的Package,合理配置,會(huì)帶來性能的優(yōu)化。

二,驗(yàn)證方式

按照驗(yàn)證的執(zhí)行順序來看,Package包含兩種類型的驗(yàn)證方式:

Package Validation:在Package執(zhí)行時(shí),首先驗(yàn)證Package及其包含的所有組件,是Package級(jí)別的驗(yàn)證;

組件驗(yàn)證:組件級(jí)別的驗(yàn)證,包含Task , Connection Manager和Container,在組件開始執(zhí)行之前,驗(yàn)證組件中引用對(duì)象的有效性。

驗(yàn)證分為兩個(gè)階段(Phrase),首先進(jìn)行Package級(jí)別的驗(yàn)證,而后進(jìn)行組件級(jí)別的驗(yàn)證:

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

通常情況下,對(duì)一個(gè)完成開發(fā)的Package啟用延遲驗(yàn)證,是一個(gè)好的選擇,這會(huì)減少Package整體的執(zhí)行時(shí)間,因?yàn)樘^了Package級(jí)別的驗(yàn)證。

1,禁用延遲驗(yàn)證

禁用Package的延遲驗(yàn)證,需要設(shè)置Package的DelayValidation屬性值為False,默認(rèn)情況下,Packag會(huì)禁用延遲驗(yàn)證,如下圖所示:

那么在Package開始運(yùn)行之后,第一件事就是開始執(zhí)行Package Validation,當(dāng)Package級(jí)別的驗(yàn)證操作完成之后,開始驗(yàn)證Package包含的各個(gè)Task等,如果驗(yàn)證發(fā)現(xiàn)錯(cuò)誤,Package不會(huì)被執(zhí)行,直接報(bào)錯(cuò)。

2,啟用延遲驗(yàn)證

啟用Package的延遲驗(yàn)證,需要設(shè)置Package的DelayValidation屬性值為True,如下圖所示:

當(dāng)啟用延遲驗(yàn)證時(shí),Package會(huì)執(zhí)行下去,知道運(yùn)行到特定的組件時(shí),才會(huì)執(zhí)行組件驗(yàn)證,如果組件驗(yàn)證失敗,那么拋出錯(cuò)誤消息,停止Package的運(yùn)行。

組件驗(yàn)證發(fā)生真正執(zhí)行組件,如果上流組件新建一個(gè)暫存表(staging table),下游組件引用該暫存表,并不會(huì)出現(xiàn)異常,這是因?yàn)樵谠摻M件進(jìn)行驗(yàn)證時(shí),該暫存表已經(jīng)存在。

三,延遲驗(yàn)證屬性的層次結(jié)構(gòu)

在Package級(jí)別上設(shè)置DelayValidation屬性并不能阻止打開Package時(shí)的最初的驗(yàn)證過程,它只是在運(yùn)行包時(shí)延遲Package級(jí)別的驗(yàn)證,這就意味著Package將繼續(xù)運(yùn)行,但是當(dāng)打開Package時(shí)警報(bào)仍然出現(xiàn)。如果想阻止打開Package時(shí)的驗(yàn)證,那么必須把Task級(jí)別上的DelayValidation屬性設(shè)置為True。

避免驗(yàn)證鏈接管理器,有時(shí),是一個(gè)非常節(jié)省開發(fā)時(shí)間的選擇。有時(shí)打開Package的過程會(huì)花費(fèi)很長(zhǎng)的時(shí)間,這可能是因?yàn)樗昧艘粋€(gè)遠(yuǎn)程數(shù)據(jù)源,而數(shù)據(jù)源的響應(yīng)很緩慢,或者鏈接不上。如果我們正在開發(fā)一個(gè)包,并且需要經(jīng)常打開這個(gè)包,那么我們可能需要花費(fèi)很長(zhǎng)的時(shí)間來等待SSIS驗(yàn)證一個(gè)數(shù)據(jù)源。在這樣的情況下,在任務(wù)級(jí)設(shè)置DelayValidation屬性為True可以為我們節(jié)省大量的時(shí)間。

示例1,驗(yàn)證操作只會(huì)驗(yàn)證屬性的完整性

設(shè)置Package Level的屬性DelayValidation=False,Task Level的屬性DelayValidation=False

Package的處理流程如下圖所示,Package級(jí)別的Validation在Create Staging Table的Validation之前開始,在Insert Data的Validation之后結(jié)束,從圖中能看到Insert Data的驗(yàn)證完成,實(shí)際上,驗(yàn)證操作并沒有檢查出一個(gè)非常簡(jiǎn)單的語法錯(cuò)誤,直到Task真正執(zhí)行時(shí),才發(fā)現(xiàn)錯(cuò)誤,這說明,驗(yàn)證操作只會(huì)驗(yàn)證Task屬性的完整性,效果是有限的。

示例2,驗(yàn)證操作會(huì)驗(yàn)證引用的對(duì)象是否存在

設(shè)置Package Level的屬性DelayValidation=False,Task Level的屬性DelayValidation=False,在Data Flow Task中,OLE DB Source組件從一個(gè)當(dāng)前不存在的表dbo.delay_test中selelct數(shù)據(jù):

在執(zhí)行Package時(shí),SSIS彈出“Package Validation Error”窗體,這就是Package級(jí)別上的驗(yàn)證發(fā)現(xiàn)的錯(cuò)誤:

設(shè)置Package Level的屬性DelayValidation=False,Task Data Flow Task的屬性DelayValidation=True,重新執(zhí)行,Package成功執(zhí)行。

示例3,打開package的驗(yàn)證

設(shè)置Package Level的屬性DelayValidation=True,Task Level的屬性DelayValidation=False,在打開Package時(shí),Task Data Flow Task上面是有紅色X號(hào)的,當(dāng)設(shè)置Task Level的屬性DelayValidation=True時(shí),在打開package時(shí),Task Data Flow Task上面的紅色X符號(hào)消失,這說明,在打開Package時(shí),驗(yàn)證操作已經(jīng)開始,并且Task 級(jí)別的驗(yàn)證屬性會(huì)覆蓋上層的驗(yàn)證。

以上三個(gè)示例說明,在打開Package,設(shè)計(jì)Package和運(yùn)行Package時(shí),SSIS引擎都會(huì)對(duì)Package進(jìn)行驗(yàn)證,并且Package的驗(yàn)證操作是優(yōu)層次結(jié)構(gòu)的,底層的延遲驗(yàn)證會(huì)覆蓋上層的延遲驗(yàn)性。

以上這篇SSIS 延遲驗(yàn)證方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SQL語句練習(xí)實(shí)例之一——找出最近的兩次晉升日期與工資額

    SQL語句練習(xí)實(shí)例之一——找出最近的兩次晉升日期與工資額

    程序員們?cè)诰帉懸粋€(gè)雇員報(bào)表,他們需要得到每個(gè)雇員當(dāng)前及歷史工資狀態(tài)的信息,以便生成報(bào)表。報(bào)表需要顯示每個(gè)人的晉升日期和工資數(shù)目。
    2011-10-10
  • SQL中Merge用法詳解

    SQL中Merge用法詳解

    Merge關(guān)鍵字是一個(gè)神奇的DML關(guān)鍵字。它在SQL Server 2008被引入,它能將Insert,Update,Delete簡(jiǎn)單的并為一句,本文給大家重點(diǎn)介紹sql中merge用法,需要的朋友一起了解下吧
    2015-09-09
  • 如何在Elasticsearch中啟用和使用SQL功能

    如何在Elasticsearch中啟用和使用SQL功能

    Elasticsearch SQL適用于需要對(duì)大量數(shù)據(jù)進(jìn)行復(fù)雜查詢的場(chǎng)景,如數(shù)據(jù)分析、報(bào)表生成、數(shù)據(jù)探索等,這篇文章給大家介紹在Elasticsearch中啟用和使用SQL功能,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • sqlserver查找括號(hào)()中字符串內(nèi)容的方法實(shí)現(xiàn)

    sqlserver查找括號(hào)()中字符串內(nèi)容的方法實(shí)現(xiàn)

    本文主要介紹了sqlserver查找括號(hào)()中字符串內(nèi)容的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • sqlserver 錯(cuò)誤602,未能在sysindexes中找到數(shù)據(jù)庫(kù) 的解決辦法

    sqlserver 錯(cuò)誤602,未能在sysindexes中找到數(shù)據(jù)庫(kù) 的解決辦法

    這是因?yàn)楦郊拥牡臄?shù)據(jù)庫(kù)是Sql2005格式,而使用的是Sql2000附加造成的
    2010-05-05
  • SQLyog連接MySQL8.0報(bào)2058錯(cuò)誤的完美解決方法

    SQLyog連接MySQL8.0報(bào)2058錯(cuò)誤的完美解決方法

    這篇文章主要介紹了SQLyog連接MySQL8.0報(bào)2058錯(cuò)誤的完美解決方法,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • win2008 r2 安裝sql server 2005/2008 無法連接服務(wù)器解決方法

    win2008 r2 安裝sql server 2005/2008 無法連接服務(wù)器解決方法

    在與 SQL Server 建立連接時(shí)出現(xiàn)與網(wǎng)絡(luò)相關(guān)的或特定于實(shí)例的錯(cuò)誤。未找到或無法訪問服務(wù)器。請(qǐng)驗(yàn)證實(shí)例名稱是否正確并且 SQL Server 已配置為允許遠(yuǎn)程連接
    2015-01-01
  • executesql 存儲(chǔ)過程

    executesql 存儲(chǔ)過程

    executesql 存儲(chǔ)過程代碼,需要的朋友可以參考下。
    2009-11-11
  • SQL Server數(shù)據(jù)匯總五招輕松搞定

    SQL Server數(shù)據(jù)匯總五招輕松搞定

    有些時(shí)候你想讓SQL Server 返回一個(gè)聚集結(jié)果集合,而不是一個(gè)詳細(xì)的結(jié)果集。SQL Server的GROUPBY子句,為你提供了一種聚合SQL Server數(shù)據(jù)的方式。GROUPBY子句允許你在一列或多列數(shù)據(jù)甚至是表達(dá)式上進(jìn)行分組操作,在這篇文章中,我將討論如何使用GROUPBY子句來匯總數(shù)據(jù)。
    2015-09-09
  • SQL Server 遠(yuǎn)程更新目標(biāo)表數(shù)據(jù)的存儲(chǔ)過程

    SQL Server 遠(yuǎn)程更新目標(biāo)表數(shù)據(jù)的存儲(chǔ)過程

    這篇文章主要介紹了SQL Server 遠(yuǎn)程更新目標(biāo)表數(shù)據(jù)的存儲(chǔ)過程,適用于更新列名一致,主鍵為Int類型,具體實(shí)例代碼大家參考下本文
    2018-05-05

最新評(píng)論