嗯,我知道这是可能选择加入了在不同的数据库,如果这些数据库在同一台服务器和安全组,在这个问题的讨论现在Can we use join for two different database tables?是否选择在不同的数据库中加入任何性能问题?
我的问题是表:是否选择加入与在同一数据库中选择连接相比,不同的数据库会产生性能问题?
嗯,我知道这是可能选择加入了在不同的数据库,如果这些数据库在同一台服务器和安全组,在这个问题的讨论现在Can we use join for two different database tables?是否选择在不同的数据库中加入任何性能问题?
我的问题是表:是否选择加入与在同一数据库中选择连接相比,不同的数据库会产生性能问题?
我真的不这么认为。因为它们在同一个服务器实例上。当您查询时:
Select * from sys.sysprocesses
,这将显示所有数据库上在该特定服务器上运行的所有进程。因此,从某些方面来看,我们可以这样认为,来自每个数据库的所有待处理进程都是同一台服务器对处理步骤的贡献。另外,如果您右键单击服务器实例,请选择Activity Monitor
,您可以看到Processes
和系统资源以及与该服务器性能相关的I/O,而不是数据库性能。
如果您查看actual or estimated execution plan
graphic icons
以查询graphic execution plan
,则不存在用于数据库级别但是表级别的此类图标。 所有你需要的图形图标可以在这里找到: https://technet.microsoft.com/en-us/library/ms175913(v=sql.105).aspx
我认为它只会有性能问题,当您从其他服务器实例加入到同一个表,因为即使他们是同桌,逻辑从加盟另一台服务器正在发送查询并从服务器获取结果,这真的取决于服务器的性能。例如,openquery()
和四部分分布式查询,如[Server].[Database].[Schema].[NameOfObject]
。这些查询将从您当前的服务器发送到目标服务器,并且无论是否具有Where
条件,select *
都将在该服务器上执行,该服务器系统会决定如何快速获得结果。