【问题标题】:Identifying and removing unused connection managers in SSIS package识别和删除 SSIS 包中未使用的连接管理器
【发布时间】:2014-02-27 17:25:34
【问题描述】:

我正在寻找一种方法来识别我一直在编写的包中未使用的连接。我没有看到一种方法来检查每个设计表面的使用情况,而且似乎没有任何类型的构建警告或“SSIS 的 fxcop”会在构建时标记它们。在 technet 上搜索很嘈杂,似乎没有产生任何相关信息。有没有办法自动执行此操作,或者我是否必须通过连接交叉引用我的所有源和目标?

【问题讨论】:

  • 有点乏味,但是如果您查看 SSIS XML“代码”,您会发现 DTS:ConnectionManager 节点。每个连接都有一个 DTSID。如果您在文件的其余部分中搜索该特定 DTSID 的任何引用,但找不到任何引用,则很可能它没有被使用。到目前为止,我看到的所有使用连接的项目都是指使用“connectionManagerID="{DTSID}"”属性的连接。这可能会成为一个有趣的小验证器工具/插件......
  • 这是迄今为止我找到的最好的回应。如果你想把它作为答案,我很乐意为你效劳。
  • 谢谢 - 我还没有找到任何替代方案,并不断求助于这种技术。包不应该使用 EncryptAllWithPassword(不确定 UserKey),否则都是胡言乱语。
  • 当我在 Visual Studio 中打开解决方案时,出现错误:错误 1 ​​加载 packagename.dtsx 时出错:找不到连接 %GUID%。当未找到特定连接元素时,Connections 集合会引发此错误。 %path%\packagename.dtsx 1 1 在我的例子中,我删除了日志文件的连接对象,但没有删除项目设计视图 >> SSIS(菜单)>> 日志(菜单选项)中的连接

标签: visual-studio-2012 ssis


【解决方案1】:

从评论中复制...

有点繁琐,但是如果你看一下 SSIS XML“代码”(右键单击包,查看代码),你会发现 DTS:ConnectionManager 节点。

每个连接都有一个 DTSID。

如果您在文件的其余部分中搜索该特定 DTSID 的任何引用,但找不到任何引用,则很可能它没有被使用。

到目前为止,我看到的所有使用连接的项目(并非全部)指的是使用 connectionManagerID="{DTSID}" 属性的连接。

这可能会成为一个有趣的小验证器工具/插件...

查看“代码”,包不应该设置为EncryptAllWithPassword——也许EncryptAllWithUserKey有类似的效果,但我不记得了。否则,您将看到的只是加密的乱码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多