リソース ID 取得フェーズの理解

TDVがデータセット内のすべてのリソースに関する完全なメタデータを保持できるように、少なくとも1回はデータソースのフルスキャンを実行して、すべての有効なオブジェクト名(リソース識別子)をデータソースから取得してください。最初の取得で、すべてのカタログ、スキーマ、テーブル、およびプロシージャの基本的なメタデータを含むリソースリストが読み込まれます。

このフェーズは、データ ソース イントロスペクションの呼び出しに対応します。イントロスペクションを呼び出すと、TDV は [Data Source Introspection] ダイアログのリソース リストに、検出したリソースを入力し始めます。

このリソースIDリストを取得するときは、次の点に注意してください。

リソース ID のリストは TDV 内にキャッシュされるため、リストが再作成されない限り、将来のフェッチは高速になります。
このリストの取得は非同期であるため、必要なリソースが Studio 内に表示された後、フル スキャンが完了する前にそれらのリソースを選択できます。
大規模なデータ ソースをイントロスペクトする場合は、リソース ID 取得のパフォーマンスを改善するためのヒントを参照してください。

データソースからのリソースIDの実際の取得は、同時実行性を実現するためにマルチスレッド化されます。コンテナ (データソースルート、スキーマ、カタログ、またはその他のタイプのコンテナ) ごとに1つのスレッドが作成されます。パラレル度 (スレッドの最大数) は、プロセッサの数か、データソースの最大接続プールサイズの半分のいずれか少ない方です。これを1未満にすることはできません。

リソースIDが取得されてTDVのキャッシュ内に配置されると、キャッシュが無効化されて再作成する必要が生じない限り、リソースIDはキャッシュから直接取得されます。このキャッシュベースの取得はシングルスレッドですが高速です。取得結果はStudioにストリーミングされます。

次の場合、リソース識別子が無効になってリソースIDリストが再作成されます。

[リソースの追加/削除] を選択するときに、[データ ソース イントロスペクション] ダイアログで [リソース リストのリフレッシュ] を選択します。
イントロスペクション (イントロスペクション プランの実施フェーズの理解を参照) は、追加される新しいリソースの検出を要求するイントロスペクション プランで実行されます。
非推奨または UpdateDataSourceChildInfosWithFilter (または非推奨の UpdateDataSourceChildInfos) Web サービス操作を呼び出します。

新しいリソースを検出して追加するようにユーザーがリクエストしていない限り、既存のリソースを再イントロスペクトしてもキャッシュは再作成されません。