当我在本地运行VS2008并打开指向远程数据库并运行的程序包时,我相信从输入文件到数据库服务器的数据正在通过我的PC运行,即使数据文件已打开数据库服务器。
但是,如果SSIS包存储在 SQL Server中并且我通过SQL Agent启动作业,那么我的PC就不在了,并且数据不会通过我的PC流出,所以我应该看到一个显着的性能提升。
是这样的吗?我只是想确认一下。目前,我没有权限在我们的开发服务器上保存一个包,并且我正在考虑因为上述原因而请求权限,只要它是有正当理由的。
为了能够在SQL Server上保存SSIS包,必须具有哪种访问权限?也许有理由拒绝我这样做的权利,也许是因为授予我这样的访问权限需要提供一个提升的访问级别,这也允许我做其他DBA可能不希望我做的事情?作为一名开发人员,我认为我应该能够将数据从UAT中移除,或者将非生产环境中的数据移植到DEV数据库中,而不必在他接触到DBA时请求DBA这样做。
答案 0 :(得分:1)
您对程序包执行位置的理解是正确的,并且通过将执行移动到服务器,性能肯定会得到提高。至少,如果服务器拥有比工作站更多的系统资源,尤其是RAM。当然,避免不必要地使用网络也很有帮助。
在msdb数据库中创建了specific roles用于管理SSIS包,因此您的DBA可以让您部署和运行它们,而无需使用sysadmin。但是,正如文档所述,如果从作业运行包,则可能存在权限升级问题,因此建议的解决方案是创建代理帐户。