使用 64位元版本的 SSIS 2008,的確是有其在記憶體等使用上的優勢。
但卻有數項問題,例如:資料庫連線驅動程式(Driver)支援的問題,有許多異質平台的資料庫系統仍只有 32 位元驅動程式。
而在使用「指令碼工作(Script Task)」上也會碰到以下的問題:
64 位元版本的 SSIS 2008,無法對「指令碼工作(Script Task)」執行「偵錯(Debug)」功能。
會發生這樣的問題,是因為負責執行偵錯功能的工具:Visual Studio Tools for Applications (VSTA),目前僅有 32 位元版本。
Visual Studio 開發工具的團隊要加油,作業系統都已經是 64 位元版本,但是開發工具仍停留在 32 位元版本。
請參考下圖所示:
可能的解決方案:
設定專案的屬性:Run64BitRuntime 為 False。
請參考下圖所示:
在 64 位元電腦上執行 Integration Services 封裝
有時候,您可能想要在 64 位元的電腦上以 32 位元模式執行封裝。
以 32 位元模式執行封裝的可能原因如下:
•執行 SQL Server 2000 DTS 封裝。
•使用無法用於 64 位元版本的 Managed .NET Framework Data Provider 或原生 OLE DB 提供者。
•使用指令碼工作或指令碼元件,參考不提供或未安裝 64 位元版本的其他組件或 COM 元件。
在 SSIS 設計師中的設定 32 位元或 64 位元封裝執行:
在 Integration Services 封裝的 [專案屬性] 中,您可以透過在 [偵錯] 頁面中設定 Run64BitRuntime 屬性的值,以選取 32 位元或 64 位元的執行模式。
依預設,此屬性的值為 True。
如果未安裝 64 位元版本的 Integration Services 執行階段,則會忽略此設定。
附註:
Run64BitRuntime 專案屬性只會在設計階段套用。
更新日期:2011/05/10
使用環境:
1. Windows Server 2008 R2 x64
2. SQL Server 2008 R2 x64
3. Office 2010 x64
在「執行結果」視窗,顯示的錯誤訊息如下:
警告: 在以 Integration Services 執行階段的 64 位元版本執行時,無法偵錯指令碼工作。 Warning: Cannot debug script tasks when running under the 64 bit version of the Integration Services runtime.--P01
--P02
設定「Run64BitRuntime」屬性為:False。
--P03
--P04
經過上述的調整,應該就可以執行指令碼的偵錯作業:
--P05
參考資料:
Integration Services 的 64 位元考量
http://msdn.microsoft.com/zh-tw/library/ms141766.aspx
並感謝熊爺的協助。
沒有留言:
張貼留言