我每天都在 SQL Server 代理中运行 SQL Server Integration Services (SSIS) 包。我一直在监控包的性能,并在资源监视器中看到大量网络活动。我正在将数据从本地 SQL Server 实例加载到另一个本地 SQL Server 实例。但是,我使用完全限定的 URL 来寻址服务器,因为它使离线开发变得更加容易。因此,10.1.2.X
我使用而不是data.mydomain.com\instance
。
使用外部 URL 而不是将数据库引用为10.1.2.X\instance
或是否会对性能造成影响localhost\instance
?另外,为什么这些包运行时我看到如此高的网络流量?实际上没有什么应该通过网络传输的。
当作业运行包时,我的网络流量在资源监视器中的情况如下。
显然,网络上有大量的流量在移动,但是正在运行的作业只从同一台机器读取和写入数据。
谢谢!
答案1
假设这些“外部 URL”实际上解析为本地地址,并且再次假设您没有任何 DNS 问题,那么,这实际上根本不应该有任何区别。
至于高网络活动,您到底看到了什么?
编辑
我在这里进行大胆的尝试(因为我对 SSIS 和 MS SQL 的内部工作原理了解甚少),但也许 DTEXEC.EXE 进程作为网络服务运行和/或使用环回适配器进行本地处理?
你可以通过 Wireshark 捕获数据或者使用简单的带宽监控工具来验证它是否是真实的网络流量。NetWorx 带宽监视器(有一个便携版本可供下载;无需安装,免费软件)在 SQL 服务器上。实际上,您可能可以运行 permon 并设置一些网络计数器,但如果我的猜测是正确的,这可能会显示相同的结果。
答案2
如果两个实例都位于同一系统上,则使用完全限定域名时唯一会“影响”性能的是 DNS 查找。假设您的 DNS 服务器(或主机文件)仍然可访问,则此操作对性能的影响可以忽略不计。
IP 在访问这些 FQDN 时将使用系统的环回接口,因此外部网络实际上不会参与发往本地主机(以及最终到达那里的任何 URI)的流量。