萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> sql server教程 >> SQL Server 2005 數據轉換服務的常見設計問題

SQL Server 2005 數據轉換服務的常見設計問題

本頁內容
為什麼傳輸幾千個表的數據時向導會失敗? 為什麼傳輸幾千個表的數據時向導會失敗? 為什麼我不能在導入/導出向導中復制對象? 為什麼我不能在導入/導出向導中復制對象? 為什麼我不能在 SQL Server Management Studio 中設計軟件包? 為什麼我不能在 SQL Server Management Studio 中設計軟件包? 什麼是數據源和數據源視圖?它們在我的軟件包中如何與連接相關? 什麼是數據源和數據源視圖?它們在我的軟件包中如何與連接相關? 為什麼沒有 Microsoft Excel 或 Microsoft Access 數據源? 為什麼沒有 Microsoft Excel 或 Microsoft Access 數據源? 為什麼默認情況下在數據流中不使用“快速分析”選項? 為什麼默認情況下在數據流中不使用“快速分析”選項? 為什麼 WMI 數據任務和事件任務是相互獨立的? 為什麼 WMI 數據任務和事件任務是相互獨立的? 為什麼表達式語言既不是 SQL 也不是 Visual Basic? 為什麼表達式語言既不是 SQL 也不是 Visual Basic? 為什麼有些函數不在表達式語言中? 為什麼有些函數不在表達式語言中? 為什麼必須在源適配器,而不是在使用組件(例如合並)中配置排序順序? 為什麼必須在源適配器,而不是在使用組件(例如合並)中配置排序順序? 為什麼必須在軟件包中鎖定變量? 為什麼必須在軟件包中鎖定變量? 為什麼分離輸出路徑時沒有向組件發出通知? 為什麼分離輸出路徑時沒有向組件發出通知? 為什麼有適用於 DTS 的 Windows 服務? 為什麼有適用於 DTS 的 Windows 服務? 為什麼在 Mgt Studio 中無法在 DTS 服務器下看到正在運行的軟件包? 為什麼在 Mgt Studio 中無法在 DTS 服務器下看到正在運行的軟件包? 為什麼默認情況下軟件包日志記錄不再位於系統數據庫 MSDB 中? 為什麼默認情況下軟件包日志記錄不再位於系統數據庫 MSDB 中? 為什麼在源適配器中看不到 XML 文檔架構的變化? 為什麼在源適配器中看不到 XML 文檔架構的變化? 為什麼我在遷移引用 DTSGlobalVariables 父屬性的軟件包時會遇到問題? 為什麼我在遷移引用 DTSGlobalVariables 父屬性的軟件包時會遇到問題? 為什麼我在遷移數據泵任務時會遇到問題? 為什麼我在遷移數據泵任務時會遇到問題? 為什麼我不能遷移動態屬性任務? 為什麼我不能遷移動態屬性任務? 為什麼全局變量在 ActiveX 腳本任務中不可用? 為什麼全局變量在 ActiveX 腳本任務中不可用? 為什麼不在 DTS 中包括數據轉換任務和數據驅動的查詢任務? 為什麼不在 DTS 中包括數據轉換任務和數據驅動的查詢任務? 為什麼 DTS 不再是客戶端可再分發的? 為什麼 DTS 不再是客戶端可再分發的? 為什麼 DTS 不支持基於 MSI 的部署? 為什麼 DTS 不支持基於 MSI 的部署?

為什麼傳輸幾千個表的數據時向導會失敗?

當前的向導體系結構會創建一個 DTS 軟件包數據流以傳輸數據。但如果要處理幾千個表,則會遇到可伸縮性限制。我們認為這是合理的,因為軟件包設計人員不太可能在一個數據流中使用幾千個源和幾千個目標。Beta 3 中可能會針對此問題進行一些改進。 ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼我不能在導入/導出向導中復制對象?

導入/導出向導是為了讓用戶方便地將數據移入和移出 sql server 而設計的。在服務器之間復制數據庫對象實際上屬於管理操作而不是數據移動操作,即使實際上移動了數據。ww w.iTbulo.coTya6KQb

用戶可以使用 SQL Server“管理”工作區中的“復制數據庫向導”來復制數據庫對象,而且該向導是專門用於復制數據庫對象的。 ww w.iTbulo.coTya6KQb

另一方面,DTS 導入/導出向導簡化了典型的 DTS 操作——從各種數據源(包括文本文件、電子表格和 OLEDB 數據源)加載數據。 ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼我不能在 SQL Server Management Studio 中設計軟件包?

SQL Server Management Studio 是一個環境,用於管理已部署軟件包的存儲和執行。它提供了專門用來設計軟件包的特殊功能,包括與 DTS 服務的集成以及枚舉遠程服務器上的軟件包的能力。但它不是一個設計環境。ww w.iTbulo.coTya6KQb

Business Intelligence Design Studio 才是用於設計軟件包、在解決方案和項目中組織軟件包、調試軟件包並管理多用戶項目的源和版本控制的環境。ww w.iTbulo.coTya6KQb

所以,在 SQL Server 2005 中,用戶分別在兩個獨立的專門化環境中設計和管理軟件包。ww w.iTbulo.coTya6KQb

有關設計和管理軟件包以及在環境之間部署軟件包的詳細信息,請參閱聯機圖書。ww w.iTbulo.coTya6KQb

返回頁首返回頁首

什麼是數據源和數據源視圖?它們在我的軟件包中如何與連接相關?

數據源數據源視圖不是 DTS 軟件包中的對象,而是存儲在 Business Intelligence Development Studio 的數據轉換項目中的單獨對象。由於它們位於項目中而不是位於 DTS 軟件包中,因此可以在 DTS 軟件包之間共享,從而允許為明星架構定義數據源視圖並由加載明星架構的每個軟件包一致地使用該視圖。ww w.iTbulo.coTya6KQb

數據源定義了如何連接到 OLEDB 或 ADO.NET 數據庫。它們包含連接字符串以及其他某些屬性,包括連接的友好名稱和描述字段。ww w.iTbulo.coTya6KQb

數據源視圖數據源所指向的關系架構的子集。可以用命名查詢、計算列、虛擬關系和友好名稱詳細描述這些視圖。例如,在使用大型架構時,您可能只想使用數據源中的一小部分表。這種情況下,就可以使用數據源視圖來定義這樣一個子集。ww w.iTbulo.coTya6KQb

數據源數據源視圖屬於設計時對象,只能在 BI Development Studio 項目中使用。在設計時,數據源可由項目中的一個或多個 DTS 軟件包使用,但在運行時,已部署的 DTS 軟件包將無法訪問這些設計時對象。DTS 軟件包包含多個連接,這使軟件包設計器能夠管理與數據庫、文件等的連接。在設計時,連接可以引用數據源數據源視圖,但在運行時,DTS 連接將使所有必需的元數據能夠獨立使用。這樣,用戶可以設計能夠共享數據源引用和數據源視圖的不同軟件包,然後獨立運行並單獨部署每個軟件包。ww w.iTbulo.coTya6KQb

如果 DTS 連接引用了數據源,那麼使用該 DTS 連接的對象就可以使用也使用該數據源的任何數據源視圖。這樣,DTS 軟件包就可以很容易地只引用大型架構的一個小子集。ww w.iTbulo.coTya6KQb

最後,DTS 連接數據源更通用,因為它們可以連接到文本文件、HTTP 連接、FTP 連接以及需要連接字符串的其他很多情形,而不只是連接到 OLEDB 和 ADO.NET 管理的提供程序。ww w.iTbulo.coTya6KQb

有關連接數據源數據源視圖的詳細信息,請參閱聯機圖書。ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼沒有 Microsoft Excel 或 Microsoft Access 數據源?

要導入 Excel 和 Access 數據文件,可以使用經過適當配置的 OLEDB 連接管理器。還可以很輕松地使用 DTS 導入/導出向導,該向導將為您創建連接管理器。ww w.iTbulo.coTya6KQb

有關詳細信息,請在聯機圖書中搜索“Creating a Package Using the DTS Import/Export Wizard”。ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼默認情況下在數據流中不使用“快速分析”選項?

“快速分析”選項是在適當的情況下才能使用的選項。它不支持特定於區域設置的分析或“年-月-日”以外的日期格式。它只對有限的數據格式有用,對於這些格式來說,此選項的分析速度可能比默認的標准分析方式更快。因此,用戶必須基於自己的數據格式顯式選擇此選項。ww w.iTbulo.coTya6KQb

有關詳細信息,請在聯機圖書中搜索“Fast Parse”。ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼 WMI 數據任務和事件任務是相互獨立的?

系統管理數據可用於影響 DTS 控制流。例如,運行 ETL 流之前,可以檢查 SQL Server 是否正在運行、計算機上是否有可用的 C: 驅動器或者是否有足夠的可用磁盤空間。WMI 數據任務用來檢索此類系統數據。ww w.iTbulo.coTya6KQb

系統管理事件可用於在 DTS 控制流中執行實時操作。例如,僅當內存使用量下降到 50% 以下時才運行 ETL 流,或者僅當文件系統上有可用的新源文件時才啟動數據流。WMI 事件任務允許定義和處理此類系統事件。ww w.iTbulo.coTya6KQb

而且,這兩種任務在所提供的功能方面也基本上是不同的。在本發行版中,我們可以更主動地根據任務提供的功能對任務進行拆分,以創建更有針對性的軟件包。這種拆分的另一個例子是文件系統任務和 FTP 任務。在 DTS 2000 中,這兩個任務提供的功能被組合到一個任務中,但在本發行版中,這兩個任務被拆分開來,從而使用戶更容易創建、理解和支持軟件包。 ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼表達式語言既不是 SQL 也不是 Visual Basic?

因為 SQL 和 Visual Basic 都不能滿足 DTS 數據流的要求。例如,我們想支持一組運算符,比如用於處理很多情況下作為標記使用的位掩碼的按位運算符。此外,為了更好地利用內存(從而獲得最佳性能),DTS 數據流對數據類型有著嚴格的限制,這也反映在表達式語法中。 ww w.iTbulo.coTya6KQb

DTS 表達式語法使您能夠設計出通過復雜的字符串和數據類型處理而獲得高性能的數據流。如果表達式語言不支持您需要的某些函數,或者您更喜歡使用 Visual Basic 語法,那麼您可以使用腳本組件,腳本組件允許您在數據流中使用 Visual Basic .NET。ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼有些函數不在表達式語言中?

由於資源限制,無法實現目前可從 SQL Server TSQL 中找到的每個函數。設置第一批函數時我們曾咨詢過客戶和開發人員,我們會認真考慮收到的測試版反饋信息,為以後的測試版和最終版本做好准備。 ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼必須在源適配器,而不是在使用組件(例如合並)中配置排序順序?

行的順序是在源適配器中設置的,並且無法通過大多數下游轉換進行更改(排序可能是一個例外)。能夠識別源數據順序的源適配器無需用戶幫助即可設置此信息,但在大多數情況下,提供給源組件的元數據不充分,使源組件無法設置輸出列排序信息,因此用戶需要自行完成此操作。ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼必須在軟件包中鎖定變量?

當適於改進並發性並且這樣可以提高性能和可伸縮性時,DTS 運行時將使用多個線程來完成執行。為了避免多個線程同時試圖訪問一個變量,必須為您的操作鎖定變量,從而使對變量的所有訪問都是“安全的”;如果不這樣做,可能會導致軟件包出現各種響應,從“有時不工作”到返回完全不正確的結果。即使軟件包是完全線性的,這也可能是一個問題:例如,如果用戶要更改循環中的並發設置。 ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼分離輸出路徑時沒有向組件發出通知?

DTS 設計器用戶應當能夠刪除路徑然後重新附著路徑,這樣才不會破壞軟件包或更改軟件包的行為。通過提供 OnOutputPathDetached 方法,我們允許行為不當的組件不遵守此規則。為了滿足希望提供多個輸出的組件作者的需要,DTS 對象模型提供了一個名為 DeleteOutputOnPathDetached 的輸出屬性,如果將此屬性設置為 true,當路徑被分離時,輸出將自動被刪除。ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼有適用於 DTS 的 Windows 服務?

適用於 DTS 的新的 Windows 服務允許操作員查看並停止特定服務器上運行的 DTS 軟件包。此服務在 SQL Management Studio 中提供。注意:需要首先啟動 DTS 服務,因為默認情況下它是被禁用的。ww w.iTbulo.coTya6KQb

請參閱常見問題中的“為什麼在 Mgt Studio 中無法在 DTS 服務器下看到正在運行的軟件包?”主題。ww w.iTbulo.coTya6KQb

有關詳細信息,請在聯機圖書中搜索“DTS Service”和“Managing DTS Service”。ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼在 Mgt Studio 中無法在 DTS 服務器下看到正在運行的軟件包?

默認情況下 DTS 服務是被禁用的。這是故意設計的,目的是為了使系統管理員可以控制何時運行該服務。要啟動 DTS 服務,請右鍵單擊“我的電腦”並選擇“管理”(從“開始”按鈕或從桌面上均可),然後在“計算機管理”窗口中雙擊“服務和應用程序”,然後單擊“服務”,即可看見在右側列出的所有 Windows 服務。在列表中找到“DTS 服務器”,右鍵單擊並選擇“啟動”。(如果您希望在每次啟動計算機時自動啟動該服務,還可以雙擊該服務以打開它的屬性,將“啟動類型”更改為“自動”。) ww w.iTbulo.coTya6KQb

有關詳細信息,請在聯機圖書中搜索“DTS Service”和“Managing DTS Service”。ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼默認情況下軟件包日志記錄不再位於系統數據庫 MSDB 中?

SQL 2005 DTS 為在日志中記錄有關數據庫的信息添加了很多新選項。這允許您為每個軟件包定義一個或多個不同類型的日志提供程序。日志提供程序類型包括文本文件、SQL Server、Windows 事件日志等等。在您的軟件包中,通過轉到“DTS”菜單並選擇“日志記錄”,可以添加日志提供程序。 ww w.iTbulo.coTya6KQb

有關詳細信息,請在聯機圖書中搜索“DTS Log Providers”和“Setting Logging Options in Packages”。ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼在源適配器中看不到 XML 文檔架構的變化?

XML 文檔架構的變化將極大地影響數據流的元數據。這要求用戶顯式更改架構並在更改時考慮到元數據的變化。ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼我在遷移引用 DTSGlobalVariables 父屬性的軟件包時會遇到問題?

DTS 2005 中發生更改的范圍要求完全重寫對象模型。作為遷移到 SQL Server 2005 DTS 的結果,引用通過 DTSGlobalVariables 父屬性訪問的 SQL Server 2000 DTS 對象的 ActiveX 腳本將不再有效。ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼我在遷移數據泵任務時會遇到問題?

DTS 2005 數據流任務取代了 DTS 2000 數據轉換任務,使功能有了很大的改進。但這樣的結果是,2000 和 2005 所提供的功能之間沒有明確的對應。為了確保以前的數據轉換任務能夠繼續正確操作,沒有將它們完全遷移到 SQL Server 2005。遷移向導當前將這樣的任務包裝在專用的 SQL Server 2000 軟件包中,並從執行 SQL Server 2000 DTS 軟件包任務調用它。ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼我不能遷移動態屬性任務?

因為此任務直接依賴於不再提供的 DTS 2000 對象模型,遷移向導當前為此任務提供的支持很有限。此任務的實例被腳本任務取代,腳本任務中包含描述曾由此任務設置的屬性的注釋。要恢復以前的功能,必須進行手動修改。ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼全局變量在 ActiveX 腳本任務中不可用?

Beta 2 不支持訪問全局變量。 ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼不在 DTS 中包括數據轉換任務和數據驅動的查詢任務?

SQL Server 2005 包括的數據流任務取代了這兩個 SQL 2000 任務。數據流任務對數據源、目標和轉換的數量沒有限制,而在 SQL 2000 中,用戶對每個任務只能使用一個數據源、一個目標和一個轉換。支持這項擴展功能所需的新對象模型無法容納這兩個功能不太強的任務。ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼 DTS 不再是客戶端可再分發的?

DTS 已被重寫,從 SQL Server 2000 中有用的實用程序變成了 SQL Server 2005 中功能豐富的應用程序和平台。這種變化同時帶來為 DTS 用戶提供服務和支持的責任,這些服務和支持最好通過管理和許可與其他 SQL 服務器應用程序類似的 DTS 引擎功能來處理。因此,雖然用戶可以使用部署向導輕松部署軟件包,但他們必須在需要運行軟件包的每台計算機上運行 SQL Server 2005 安裝程序並安裝 DTS。這不僅有助於確保用戶/計算機使用正確版本的 DTS 可執行程序,還有助於該軟件以後的更新。ww w.iTbulo.coTya6KQb

返回頁首返回頁首

為什麼 DTS 不支持基於 MSI 的部署?

基於 MSI 的部署具有完全獨立安裝的優點,但它需要再分發 DTS 二進制文件。如果需要某個重要的安全修補程序,那麼以托管方式將修補程序應用到每個部署目標是不可能的。當前的部署實用程序要求目標服務器上已安裝 DTS,因為這對管理員來說才是更有用的模型。ww w.iTbulo.coTya6KQb

有關詳細信息,請在聯機圖書中搜索“Deployment Utility”。ww w.iTbulo.coTya6KQb


關鍵詞:

copyright © 萬盛學電腦網 all rights reserved