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

SSIS包无法打开全局共享内存以与性能DLL通信,ssis,package,Ssis,Package,我正在处理一个.dtsx文件,该文件从数据库读取并输出一个平面文件。在使用SQL的Execute package实用程序测试包时,我收到以下警告: 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

我正在处理一个.dtsx文件,该文件从数据库读取并输出一个平面文件。在使用SQL的Execute package实用程序测试包时,我收到以下警告:

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.
在我的研究中,我得到了关于如何处理这个问题的混合信息。一位人士表示,这是源和数据转换之间的数据类型问题。另一位说,这只是一个警告,只要您不需要性能计数器(我相信我不需要),就可以忽略它。我还发现,在运行xp且没有SQL Service Pack的计算机上,这是一个问题,但我使用的是Windows 7


我应该关注这个警告吗

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

如果要防止出现此警告,可以将用于执行包的用户帐户(例如,您的帐户和/或SQL Server代理帐户)添加到本地组“Performance Monitor Users”中


如果对任何服务(如SQL Server代理)进行了此更改,则需要重新启动该服务才能使更改生效。

Nathan修复程序对我无效


它是以管理员身份运行Visual Studio的。。。即使我的帐户在本地管理员组中,“本地管理员”组允许您在单独请求时使用管理员权限,例如“以管理员身份运行”。这并不意味着您可以一直使用管理员权限运行所有内容

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

在让软件包正常工作(我必须纠正连接字符串)后,我可以验证警告是否可以忽略,并且软件包仍然可以工作(至少在我的情况下)。