了解Integration Services上的存储包

Jos*_*ien 4 sql-server ssis

我们有几个SSIS包(在解决方案中)保存在服务器上的目录中.这些包通过SQL Server代理作业运行,"文件系统"作为包源.软件包不会以任何方式添加到"Integration Services"(您可以通过SSMS中的"Connect"按钮连接).这似乎工作正常.

现在我试图了解Integration Services的存储包的实际使用和工作方式.这可能是有充分理由的 - 但我还没有得到它(阅读几个SSIS主题没有帮助).

如果我打开Integration Services并将现有包添加到存储包中的MSDB文件夹,则会将其添加到我的SQL Server实例的msdb系统数据库中.然后我可以从sysssispackages或查询它的一些信息sysssispackagefolders,并直接运行包.

如果我将现有的包添加到存储包中的文件系统文件夹,似乎没有任何事情发生,除了它还允许我通过右键单击并选择"运行包"来运行它.

我觉得我在这里错过了重要的东西.我的问题如下:

  1. 除了将软件包保存为服务器上的文件之外,还有什么理由使用Integration Services来存储软件包?
  2. 将包添加到Integration Services的"存储包"文件夹中的"文件系统"或"MSDB"文件夹时会发生什么?有什么好处?

任何指针/见解非常感谢!

Joa*_*eal 5

以下是数据库存储包与文件系统存储包的一些优点/缺点:

文件系统

  • 基于操作系统的文件加密和ACL
  • 更容易直接访问以查看或编辑包
  • 通常开发人员更容易管理(更改包,只需替换文件)

SQL Server

  • 多个人更容易访问
  • 数据库安全性,角色和代理交互的好处
  • 使用正常的数据库备份过程备份软件包
  • DBA通常更容易管理(他可以根据更改控制包的内容等).

关于第二个问题,包是SSIS可以读取和执行的XML文件.在基于文件的部署中,SSIS在文件系统上定位程序包并执行它,在数据库部署中,SSIS将程序包定位在MSDB表上并执行它.在性能方面没有任何差异.