SQL Serverに、ERPシステムからのデータウェアハウス抽出を「ステージング」するテーブルがあります。
このステージングテーブル(テーブル名:DBO.DWUSD_LIVE)から、ディメンションを作成し、ファクトデータをロードします。
DIMENSIONテーブルの例は「SHIPTO」と呼ばれ、このディメンションには次の列があります。
"shipto_id
"shipto"
"salpha"
"ssalpha"
"shipto address"
"shipto name"
"shipto city"
現在、上記の列全体でSELECT DISTINCTを実行して「一意の」データを取得するSSISパッケージがあり、SSISパッケージを介して「shipto_id」代理キーを割り当てています。
現在のTSQLクエリの例は次のとおりです。
SELECT DISTINCT
"shipto", "salpha", "ssalpha", "shipto address", "shipto name", "shipto city"
FROM DBO.DWUSD_LIVE
これはうまく機能しますが、「高速」ではありません。一部のディメンションには10列があり、それらに対して個別の選択を行うことは理想的ではありません。
このディメンションでは、「ビジネスキー」列は「SHIPTO」、「SALPHA」、および「SSALPHA」です。
だから私がそうするなら:
SELECT DISTINCT
"shipto", "salpha", "ssalpha"
FROM DBO.DWUSD_LIVE
次と同じ結果が得られます。
SELECT DISTINCT
"shipto", "salpha", "ssalpha", "shipto address", "shipto name", "shipto city"
FROM DBO.DWUSD_LIVE
このTSQLクエリを実行するためのより良い方法はありますか?すべての列が必要ですが、ビジネスキー列にはDISTINCTのみが必要です。
あなたの助けに感謝します。
以下は、私のプロジェクトがSSISでどのように設定されているかの画像です。ディメンションは、SCD1です。