我必须参加从多个数据库查询,类似的查询:如何使从多个数据库
SELECT T1.*, T2.* FROM DatabaseA.dbo.Table1 AS T1
INNER JOIN DatabaseB.dbo.Table2 AS T2 ON T1.ID = T2.ID
我的问题:
- 我应该如何设置的
System.Data.SqlClient.SqlConnection
连接字符串?我应该省略还是留空Initial Catalog
?我应该把它设置为DatabaseA
? - 这是执行此任务的好方法吗?我正在考虑准备第三个没有表格的数据库,但是用这个视图
SELECT
(我不能在现有的数据库中放置一个视图)。查询通常在10/15秒内执行,但用户必须等待,所以即使少了几秒钟,也不会感激。
所有数据库共享相同的登录凭证。
是的,所有数据库共享相同的登录凭据。你认为使用第三个数据库有更好的视角(用于性能和设计)吗? (查询通常在10/15秒内执行,但用户必须等待,因此即使少数几秒钟也不会被理解)。 – 2012-03-19 15:43:12
我不会建议创建第三个数据库以仅包含视图...每个创建的数据库都有管理开销,所以您应该尽可能地限制它。我会尝试获得在任一现有数据库中创建视图的权限......但是,除非您计划对视图建立索引,否则我认为这不会提高查询的性能。 – 2012-03-19 15:45:47
不幸的是,表格是相关的,但法律规定将它们分割到多个数据库中(我感到很幸运,它们至少在同一台服务器上)。视图将被编入索引,但我会等待几个月的反馈来调整它。谢谢,我想这就是全部! – 2012-03-19 15:56:50