![]() |
1
2
如果您 需要 三个单独的表,建议在同一个数据库中使用不同的模式。如果这恰好是一个事实表,那么最好将其加载到单个事实表中,并在大小太大时使用分区。 当涉及到ETL时,建议将ETL放入同一个DB中的独立模式(如ETL)中的临时表中,并从中加载事实表。完成后,将截断临时表。 建议来自 Microsoft Project Real . 还要记住,不能跨数据库使用外键。 |
![]() |
2
3
考虑使用SQL Server的第一类分区联合表(而不是自己进行)。如果您总是选择每个数据点,那么可能是的,拔出多个磁盘更快。 但是为什么有多个数据库呢?您总是可以将三个表堆叠到一个表中,但是在三个驱动器上实现一个表,并对其进行突袭。如果你追求的是速度,这是一个更清晰的解决方案。 只有在选择了集合中特定的、相邻的部分时,联合才有意义。但是根据你的操作,你选择了所有的东西,这样就消除了这种好处。 |
![]() |
3
3
是的,你当然应该。在不同的数据库中拆分同一个表是没有意义的。如果硬盘空间有问题,请考虑对表进行分区。 关于您的评论: 性能成本并不那么高,但是联合执行合并联接,这会带来一些开销。 除此之外,您确定正确使用联合吗?联合将消除重复值。也许你真正想做的是联合? |
![]() |
4
1
A
除此之外,您还应该检查执行计划,看看您得到了什么样的性能影响。我知道,即使在其他数据库的表上,SQL Server也会使用索引,但您在这里所做的仍然没有多大意义。我建议使用表分区,如果正常使用场景是
|
![]() |
Sweepy Dodo · JSON lite的格式化 8 月前 |
![]() |
giantjenga · 优化整数向量到二进制向量的转换 9 月前 |
![]() |
Zegarek · Postgresql递归查询未提供预期结果 9 月前 |
![]() |
Joe · 为什么这两个查询之间的性能存在如此大的差异? 1 年前 |
![]() |
tic-toc-choc · 在`dplyr中高效使用列表进行过滤` 1 年前 |