设置 DTS 应用程序属性
新建日期: 2005 年 12 月 5 日
对于仍需运行 SQL Server 2000 Data Transformation Services (DTS) 包的 SQL Server 2005 Integration Services (SSIS) 用户,Microsoft 提供 DTS 运行时引擎的更新版本作为 SQL Server 2005 Integration Services (SSIS) 安装程序的一部分,并提供 DTS 设计器的更新版本作为 Web 下载的一部分。SQL Server 2005 工具通过熟悉的设计器和运行时引擎提供对几乎所有 DTS 功能的访问。
但是,SQL Server 2005 工具不再提供对 DTS**“包属性”对话框中应用程序范围内设置的访问,该对话框可通过在 SQL Server 2000 企业管理器中选择 Data Transformation Services 节点的弹出菜单上的“属性”**来访问。本主题对这些设置以及如何以手动方式(通过编辑适用的注册表项)或编程方式(通过在可修改注册表项的 DTS 对象模型中调用相应的方法)来配置设置进行了说明。
DTS 应用程序属性
本主题中讨论了以下 DTS 应用程序属性:
- 高速缓存:启用高速缓存(复选框)
缓存可用任务、转换、脚本语言以及 OLE DB 访问接口的列表,以提高性能。
- 高速缓存:刷新高速缓存(按钮)
刷新上述缓存列表。
- 设计器:在 DTS 设计器中显示多阶段抽取
启用高级选项的显示,这些选项允许单独配置数据转换的特定阶段(如“源数据前”或“转换失败时”)的高级选项的显示。
- 调试:启用实时调试
为自定义任务的开发人员启用调试。
- 元数据服务:允许保存到元数据服务
允许将包保存到元数据服务(存储库)。
注意: |
---|
SQL Server 2005 中限制对存储库的支持。有关详细信息,请参阅 SQL Server 2005 Integration Services 的向后兼容性中的“元数据服务(存储库)包”。 |
在注册表中设置 DTS 应用程序属性
若要通过直接修改注册表来手动启用或禁用以下 DTS 应用程序属性,请在父键 HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\80\DTS\Settings 下将以下 REG_DWORD 值设置为 0(启用)或 1(禁用):
启用高速缓存
TasksCacheTransformationsCache
ScriptingLanguagesCache
OLEDBProvidersCache
- 在 DTS 设计器中显示多阶段抽取
DesignerSettings
- 启用实时调试
JITDebug
注意: |
---|
不能通过编辑注册表值来刷新高速缓存。只能以编程方式来刷新高速缓存。 |
若要通过直接修改注册表来手动启用或禁用以下 DTS 应用程序属性,请在父键 HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\80\DTS\Settings 下将以下 REG_DWORD 值设置为 0(启用)或 1(禁用):
- 允许保存到元数据服务
EnableSaveToRepository
注意: |
---|
当启用“允许保存到元数据服务”属性时,“包属性”对话框将显示以下警告:“警告: 保存到元数据服务的包应视为不安全。确实要允许将包保存到元数据服务吗?” |
示例注册表脚本
将以下注册表脚本保存到扩展名为 .reg 的文本文件中并运行时,该脚本可启用此主题中讨论的所有 DTS 应用程序属性。若要禁用这些属性,请将新值从 00000001 更改为 00000000。
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\80\DTS\Settings]
"TasksCache"=dword:00000001
"TransformationsCache"=dword:00000001
"ScriptingLanguagesCache"=dword:00000001
"OLEDBProvidersCache"=dword:00000001
"DesignerSettings"=dword:00000001
"JITDebug"=dword:00000001
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\80\DTS\Settings]
"EnableSaveToRepository"=dword:00000001
在 DTS 对象模型中设置 DTS 应用程序属性
若要以编程方式启用或禁用以下 DTS 应用程序属性,请将 DTS Application 对象的下列值设置为 True(启用)或 False(禁用)。
启用高速缓存
.TaskInfos.UseCache.TransformationInfos.UseCache
.ScriptingLanguageInfos.UseCache
.OLEDBProviderInfos.UseCache
- 启用实时调试
.JITDebug
若要以编程方式启用或禁用以下 DTS 应用程序选项,请将 DTS Application 对象的下列值设置为 DTSDesignerSettings 枚举中的相应值:
- 启用 - DTSDesignerSettings.DTSDesigner_ShowMultiPhaseTransforms
- 禁用 - DTSDesignerSettings.DTSDesigner_Default
- 在 DTS 设计器中显示多阶段抽取
.DesignerSettings
使用 DTS 对象模型无法设置**“允许保存到元数据服务”**属性的值。可以使用 .NET Framework 类库的 Microsoft.Win32 命名空间中的 Registry 类来设置该属性,如以下示例所示。
示例代码
当编译并运行以下用于控制台应用程序的示例代码时,可启用此主题中讨论的所有 DTS 应用程序属性。若要禁用这些选项,请将新值从 True 更改为 False,并将 DesignerSettings 属性的值更改为 DTSDesignerSettings.DTSDesigner_Default。
该应用程序要求引用 Microsoft DTSPackage Object Library (COM)。
只能通过直接修改注册表来设置**“允许保存到元数据服务”**选项的值。
Imports Microsoft.Win32
Imports DTS
Module SetDTSProperties
Sub Main()
Const SETTINGS_ROOT_KEY As String = "Software\Microsoft\Microsoft SQL Server\80\DTS\Settings"
Const METADATASERVICES_VALUE As String = "EnableSaveToRepository"
Dim dtsApp As New DTS.Application
Dim keySettingsRoot As RegistryKey
With dtsApp
.TaskInfos.UseCache = True
.TransformationInfos.UseCache = True
.ScriptingLanguageInfos.UseCache = True
.OLEDBProviderInfos.UseCache = True
.DesignerSettings = DTSDesignerSettings.DTSDesigner_ShowMultiPhaseTransforms
.JITDebug = True
End With
keySettingsRoot = Registry.LocalMachine.OpenSubKey(SETTINGS_ROOT_KEY, True)
If keySettingsRoot Is Nothing Then
keySettingsRoot = Registry.LocalMachine.CreateSubKey(SETTINGS_ROOT_KEY)
End If
With keySettingsRoot
.SetValue(METADATASERVICES_VALUE, Math.Abs(CType(True, Integer)))
.Close()
End With
End Sub
End Module
using Microsoft.Win32;
using DTS;
class SetDTSProperties
{
public static void Main()
{
const string SETTINGS_ROOT_KEY = "Software\\Microsoft\\Microsoft SQL Server\\80\\DTS\\Settings";
const string METADATASERVICES_VALUE = "EnableSaveToRepository";
DTS.Application dtsApp = new DTS.Application();
RegistryKey keySettingsRoot;
{
dtsApp.TaskInfos.UseCache = true;
dtsApp.TransformationInfos.UseCache = true;
dtsApp.ScriptingLanguageInfos.UseCache = true;
dtsApp.OLEDBProviderInfos.UseCache = true;
dtsApp.DesignerSettings = DTSDesignerSettings.DTSDesigner_ShowMultiPhaseTransforms;
dtsApp.JITDebug = true;
}
keySettingsRoot = Registry.LocalMachine.OpenSubKey(SETTINGS_ROOT_KEY, true);
if (keySettingsRoot==null)
{
keySettingsRoot = Registry.LocalMachine.CreateSubKey(SETTINGS_ROOT_KEY);
}
{
keySettingsRoot.SetValue(METADATASERVICES_VALUE, Math.Abs((int) true));
keySettingsRoot.Close();
}
}
}
可将以下子例程添加到应用程序,以在适当的时候刷新高速缓存。缓存的值存储在注册表中的 HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\80\DTS\Enumeration 下。
Private Sub RefreshCache()
Me.Cursor = Cursors.WaitCursor
With dtsApp
.TaskInfos.Refresh()
.TransformationInfos.Refresh()
.ScriptingLanguageInfos.Refresh()
.OLEDBProviderInfos.Refresh()
End With
Me.Cursor = Cursors.Default
End Sub
private void RefreshCache()
{
this.Cursor = Cursors.WaitCursor;
{
dtsApp.TaskInfos.Refresh();
dtsApp.TransformationInfos.Refresh();
dtsApp.ScriptingLanguageInfos.Refresh();
dtsApp.OLEDBProviderInfos.Refresh();
}
this.Cursor = Cursors.Default;
}
请参阅
概念
SQL Server 2005 Integration Services 的向后兼容性
升级或迁移 Data Transformation Services