私は、SFSとSSDTの両方と一緒にTFS /ソース管理を使用する大規模なETLおよびDWプロジェクトで働いています。
今日、SSISパッケージがデータベーステーブルへの一括挿入を実行している間、そのデータベースに対してSSDTスキーマ比較を実行できないことがわかりました。一部のパッケージの完了には非常に長い時間がかかるため、これは残念です。データベースのバージョン管理のためにSSDTプロジェクトに保存するために、スキーマ比較機能を使用してデータベース構造への変更を検出します。
これについてもう少し詳しく見てみると、SSDTのスキーマ比較関数OBJECTPROPERTY()
が、データベースのテーブルでシステム関数を呼び出すSQLスクリプトを実行していることがわかりました。特に私の場合、が現在一括挿入されているテーブルを参照する場合、への呼び出しはすべてOBJECTPROPERTY(<object_id>, N'IsEncrypted')
ブロックされているよう<object_id>
です。
Visual Studioでは、SSDTスキーマ比較はしばらくするとタイムアウトし、違いが検出されなかったと主張します。
SSDTでこの問題の回避策はありますか、それともMS Connectバグレポートを提出する必要がありますか?
または、BULK INSERTはSSISパッケージからOBJECTPROPERTY
行われるので、テーブルの呼び出しをロックせずにこの挿入を行う方法はありますか?編集: SSIS OLE DB宛先では、「テーブルのロック」からチェックマークを削除できます。チェックマークはそれを実行しますが、状況によってはパフォーマンスが低下する可能性があります。一部のオブジェクトがロックされている場合でも、SSDTスキーマ比較でその機能を実行できるようにするソリューションの方がはるかに興味があります。