問題タブ [ssis-2016]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ssis - SSIS2014 同じ DataFlowTask で Destination コンポーネントのステータスを取得する方法
私はSSIS 2014を使用しています。Attunity Oracle ソース コンポーネントから数十万の行があり、そのソース クエリには 20 の列があり、時間がかかります。何らかの理由で、最初のテーブルを参照する別のテーブルに同じクエリの 2 つの列を挿入する必要があります。
別の DataFlowTask でクエリの 2 回目の呼び出しを避けたいので、 OleDB Destination が終了WAIT till x_01 finishes
したときに検証するスクリプト コンポーネント タスクを作成して、2 番目のテーブルに挿入することを考えていました。x_01
私がここで達成したいことを親切に理解してください:
x_01_Finished
Package Scope 変数を使用し、PostExecute イベントが から発生したときにその値を変更することを考えていましx_01
たが、残念ながら PostExecute は OleDB x_01
Destination レベルでは使用できません。
質問1:
スクリプト コンポーネント コード内で、他のコンポーネントのステータスを取得する方法はありますか?
次のようなもの:
質問2:
この手法を使用すると、パッケージのパフォーマンスが大きく影響を受けると思いますか?
更新 1
すでにNick.McDermaidの提案を非常に少量のデータで試しました。最初の列に PK を持つ 2 つの一時テーブルと、最初のテーブルのこの PK への FK を持つ 2 番目のテーブルを作成しました。この少量のデータでも、このエラーが発生The INSERT statement conflicted with the FOREIGN KEY constraint "FK_tmp_1_tmp_2".
しました。次のスクリーンショットで、挿入が実際に非常に高速であることがわかります。データの 2 番目のチャンクではx_02
、最初のデータの前にオブジェクトを挿入することを意図していました (そして、それは不可能でした) 。この FK により) .
したがって、私の次のアイデアは、2 番目のテーブルに挿入する前に最初の行だけを読み込んでいる間、数ミリ秒スリープすることです。これが役立つかどうかを確認します。
sql-server - ssis パッケージ 2016 でタイムスタンプをミリ秒単位でキャプチャする方法
ssis パッケージ 2016 で現在のタイムスタンプをキャプチャする方法
変数を宣言して式を使用しましたが、ミリ秒がありません
ミリ秒も欲しい
ありがとう