SQL Azure 为您提供了设置联合 SQL 服务器的选项 - 例如,本质上通过某个键将您的数据跨多个服务器分区。但是,当您运行时select * from order
,它会为您将所有数据重新组合在一起,并且整个过程对您的应用程序是透明的。
现在,假设我有一个可以自由使用临时表的存储过程。所以在这样的情况下:
-- query uses data from each partitioned server
select tbl1.Column1, tbl2.Column2
into #tmpTable
from tbl1
join tbl2.id = tbl1.id
where tbl2.Column3 = '234'
-- also uses data from each partitioned server
select #tmpTable.*
from tbl3
join tbl3.fkey = #tmpTable.Column1
在这种情况下,数据是否每次都从一台服务器流向主服务器?临时表实际存储在哪里?全部在主盒子上,还是在联邦盒子之间分开?