約 4,000 万台以上の車両のスナップショット データを含む多数のテーブル (約 40) があります。各スナップショット テーブルは特定の時点 (四半期の終わり) にあり、構造は同じです。
ほとんどの分析は単一のスナップショットに対して行われますが、すべてのスナップショットに対して一度に分析を実行する必要がある場合があります。たとえば、すべてのスナップショットからすべての Ford Focus 車を含む新しいテーブルを作成する必要がある場合があります。
これを実現するには、現在 2 つのオプションがあります
。a) FROM 句を変更するだけで、同じコードを何度も繰り返す長い、長い、長いバッチ ファイルを作成する
[欠点 - 書き込みに長い時間がかかり、ブロックの 1 つのコードは、他のすべてのブロックで手間のかかる変更を必要とします]
b) ビューを使用してすべてのテーブルを結合し、代わりにクエリを実行します
[欠点 - テーブルは別々のデータベース インスタンスに格納され、インデックスを作成できず、結果のビューは長さ 6 億レコード、幅 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 を更新することが非常に簡単になり、元のテーブルに既にあるすべてのインデックスを利用できることを意味します。
ポインタ、提案、またはヘルプをいただければ幸いです。