SQL complexe queryget差异

时间:2016-12-15 19:02:23

标签: sql performance

我有一个复杂的SQL查询,应该每天执行以加载表。查询对所有数据执行一次,然后应在一天的差异数据上执行。 我的问题是加载数据的最佳性能是什么,我需要解决方案:

  1. 使用where查询对所有数据库执行查询,以仅获取已更改的数据。
  2. 构建源表的副本,每次都会截断并只加载数据差异,然后对这些表执行查询。

1 个答案:

答案 0 :(得分:0)

查询的性能特征依赖于严重哪个DBMS以及物理数据模型(索引,统计信息等)。可以说很少有人能够回答这个问题。

通过良好的索引等(无论对于您正在使用的DBMS的确切意义),只需查询已更改的数据,您就可以获得非常好的性能(前提是这是一个简单的,可索引的表达式,用于& #34;已更改的数据")。

虽然我强烈怀疑你在技术上得到了最快的"对于该查询的性能 通过将数据加载到仅包含增量的表中,可能无法保存足够的性能来抵消成本,其中包括:

  • 它更复杂:需要维护的表格越多,移动数据的脚本越多,......
  • 添加新数据的行为效率较低,因为您必须将其写入两次(一次写入增量表,一次 - 同时或稍后 - 写入表格历史数据累计