我有许多表(大约 40 个)包含大约 4000 万辆汽车的快照数据。每个快照表都位于特定时间点(季度末),并且在结构上是相同的。
虽然我们的大部分分析都是针对单个快照,但有时我们需要同时针对所有快照运行一些分析。例如,我们可能需要构建一个新表,其中包含每个快照中的所有福特福克斯汽车。
为了实现这一点,我们目前有两种选择:
a) 编写一个很长很长的批处理文件,一遍又一遍地重复相同的代码,只需更改 FROM 子句
[缺点 - 编写和更改单行代码需要很长时间其中一个块中的代码需要在所有其他块中进行细微的更改]
b) 使用视图将所有表联合在一起并查询
[缺点 - 我们的表存储在单独的数据库实例中并且不能被索引,加上结果视图是大约 6 亿条记录长 x 125 列宽,所以速度非常慢]
所以,我想知道我是否可以使用动态 sql 或将 SQL 放入循环中以假脱机处理所有表。这将是这样的:
for each *table* in TableList
INSERT INTO output_table
SELECT *table* as OriginTableName, Make, Model
FROM *table*
next *table* in TableList
这可能吗?这意味着当我们的客户端更改他们需要的内容时更新原始 SQL(非常经常发生!)将非常简单,并且我们将从原始表上已有的所有索引中受益。
任何指示、建议或帮助将不胜感激。