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