SSIS包无法打开全局共享内存以与性能DLL进行通信

时间:2012-06-27 13:31:13

标签: ssis package

我正在处理从数据库读取并输出平面文件的.dtsx文件。在使用SQL的Execute Package Utility测试软件包时,我收到了这个警告:

Warning: Could not open global shared memory to communicate 
  with performance DLL; 
  data flow performance counters are not available.  
  To resolve, run this package as an administrator, 
  or on the system's console.

在我的研究中,我得到了关于如何处理这个问题的混合信息。有人说这是源和数据转换之间数据类型的问题。另一个人说这只是一个警告,只要你不需要性能计数器(我不相信我这样做)就可以忽略它。我还发现在没有SQL Service包的情况下运行xp的计算机上的问题,但我在Windows 7上。

我应该关注这个警告吗?

5 个答案:

答案 0 :(得分:13)

如果要防止发生此警告,可以将用于执行程序包的用户帐户(例如,您的帐户和/或SQL Server代理帐户)添加到本地组"性能监视器用户&#34 ;。

如果对任何服务进行此更改,例如在SQL Server Agent中,需要重新启动该服务才能使更改生效。

答案 1 :(得分:7)

我的理解是,UAC不允许VS / BIDS访问性能计数器。对于日常的包裹执行,你没事。它不会影响SSIS的运行能力,也不会改变数据转换的结果。

答案 2 :(得分:0)

@Nathan修复不适用于我

它以管理员身份运行Visual Studio的排序方式...即使我的帐户位于“本地管理员”组中

答案 3 :(得分:0)

通过“本地管理员”组,可以在单独请求时以管理员权限运行,例如“以管理员身份运行”。这并不意味着您始终以管理员权限运行所有内容

答案 4 :(得分:0)

在我的示例中,我有一个oledb命令对象,但之前没有对象。它正在执行一个插入语句,但是我只用“ Select 1 as NeededColumnInput”添加了一个对象,然后将其连接到oledb命令对象。然后我的工作了。