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