程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server數據轉換服務的疑難解答(2)

SQL Server數據轉換服務的疑難解答(2)

編輯:關於SqlServer

     提示:副標題 數據源和數據源視圖屬於設計時對象,只能在 BI Development Studio 項目中使用。在設計時,數據源可由項目中的一個或多個 DTS 軟件包使用,但在運行時,已部署的 DTS 軟件包將無法訪問這些設計時對象。DTS 軟件包包含多個連接,這使軟件包設計器能夠管理

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved