ユーザーガイド > データソースメタデータの取得 > 大規模なデータソースをイントロスペクトする際のヒント > リソースID取得フェーズを理解する
 
リソースID取得フェーズを理解する
TDVがデータセット内のすべてのリソースに関する完全なメタデータを保持できるように、少なくとも1回はデータソースのフルスキャンを実行して、すべての有効なオブジェクト名(リソース識別子)をデータソースから取得してください。最初の取得で、すべてのカタログ、スキーマ、テーブル、およびプロシージャの基本的なメタデータを含むリソースリストが読み込まれます。
このフェーズは、データソースイントロスペクションの呼び出しに対応します。イントロスペクションを呼び出すと、TDVによって検出されたリソースが[Data Source Introspection(データソースのイントロスペクト)]ダイアログのリソースリストに自動入力されます。
このリソースIDリストを取得するときは、次の点に注意してください。
リソースIDのリストはTDV内にキャッシュされるため、リストが再作成されない限り、以降の取得は迅速化されます。
このリストの取得は同期されないため、必要なリソースがStudioに表示されたら、フルスキャンが完了する前にそれらを選択できます。
大規模なデータソースをイントロスペクトする場合は、「リソースID取得のパフォーマンスを改善するためのヒント」を参照してください。
データソースからのリソースIDの実際の取得は、同時実行性を実現するためにマルチスレッド化されます。コンテナー(データソースルート、スキーマ、カタログ、またはその他のタイプのコンテナー)ごとに1つのスレッドが作成されます。並列度(スレッドの最大数)は、プロセッサーの数か、データソースの最大接続プールサイズの半分のいずれか少ない方です。これを1未満にすることはできません。
リソースIDが取得されてTDVのキャッシュ内に配置されると、キャッシュが無効化されて再作成する必要が生じない限り、リソースIDはキャッシュから直接取得されます。このキャッシュベースの取得はシングルスレッドですが高速です。取得結果はStudioにストリーミングされます。
次の場合、リソース識別子が無効になってリソースIDリストが再作成されます。
[Add/Remove Resources(リソースの追加/削除)]を選択するときに、[Data Source Introspection(データソースのイントロスペクト)]ダイアログで[Refresh Resource List(リソースリストの更新)]を選択した場合
追加する新しいリソースの検出をリクエストするイントロスペクション計画によってイントロスペクション(「イントロスペクション計画実装フェーズを理解する」参照)が実行された場合
非推奨のUpdateDataSourceChildInfosWithFilter(または非推奨のUpdateDataSourceChildInfos)Webサービス操作を呼び出した場合
新しいリソースを検出して追加するようにユーザーがリクエストしていない限り、既存のリソースを再イントロスペクトしてもキャッシュは再作成されません。