sql - 跨数据库联合

标签 sql sql-server performance sql-server-2008 data-warehouse

我的仓库数据集市数据分布在同一台服务器上的 3 个数据库中。这是一个概念验证项目,其中包含三个已加载到各个数据库中的数据提取。

在拉入立方体时,我实际上是在这样做:

SELECT * FROM DB1.dbo.Fact_Pres
UNION
SELECT * FROM DB2.dbo.Fact_Pres
UNION
SELECT * FROM DB3.dbo.Fact_Pres

我真的应该将数据整合到一张表中吗?这会让我的处理速度更快吗?

我对磁盘空间没有任何问题 - 我想实现最佳解决方案。

无论哪种情况,您能帮我理解为什么您建议的方法是最佳的吗?

最佳答案

考虑使用 SQL Server 的一流分区来联合您的表(而不是自己动手)。如果您总是选择每个数据点,那么也许是的,拉出多个磁盘会更快。

但是为什么有多个数据库呢?您总是可以将三张表堆叠成一张表,但要在三个一起进行 RAID 的驱动器上实现该一张表。如果您追求的是速度,这是一个更明确的解决方案。

只有当你选择了集合中特定的相邻部分时,联合才有意义。但是根据您的 OP,您选择了所有内容,因此消除了这种好处。

关于sql - 跨数据库联合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1826130/

相关文章:

php - 如何在php中将ISO8601转换为日期格式

sql - 在 SQL Server 中使用 JOIN 排除记录

c# - Oracle 和 SQL Server 之间的多线程数据传输 - 网络性能

performance - 如何加快启用 CMake 的 C++ 项目的编译时间?

Python:一种优雅/有效的方法来评估二维索引上的函数?

performance - 即使 RS 未完全充满,RESOURCE_STALLS.RS 事件是否也可能发生?

mysql - MySQL innoDB 更新缓慢(无知)

sql - 关键词表设计

php - 匹配 PHP 数组中的数据并显示不匹配的内容

sql - Insert 语句中的多个 Select 语句出错