Teradata のクエリ バンドについて説明できる人はいますか? これについていろいろ調べてみましたが、納得できる情報が得られませんでした。少し詳しくお願いします。
ありがとう!!!
Teradata のクエリ バンドについて説明できる人はいますか? これについていろいろ調べてみましたが、納得できる情報が得られませんでした。少し詳しくお願いします。
ありがとう!!!
Teradata でのクエリ バンディング:
クエリ バンディングは、状況に応じたワークフロー情報を提供します。
概念:
科学者は、鳥の足に装置を付けて飛行経路を追跡することがよくあります。バンドを介して取得されたデータを監視および分析することで、種に関する重要な情報が得られます。
DBA は、クエリに関して利用可能な情報よりも多くの情報を必要とするため、同じプロセスに従います。
要求しているユーザーの名前、作業単位、アプリケーション名などのメタデータは重要です。ワークロード管理は、データ ウェアハウスとクエリのトラブルシューティングの使用全体を追跡します。クエリ バンディング機能は、これらのメタデータの詳細がデータベース内のクエリにリンクされるように使用されます。
クエリ バンドには、開始ユーザーの企業 ID、部門と場所、開始実行の開始時刻など、任意の数の名前または値のペアを含めることができます。
SET QUERY BAND = 'name=value; name2=value;' FOR SESSION|TRANSACTION;
これにより、クエリにいくつかの名前と値のペアがタグ付けされます。これは、クエリのワークロード管理を管理するために使用できます。たとえば、TDWMには、値「value」を持つすべてのname2タイプに優先順位を付けるスロットルと優先順位管理フックがあります。これは、セッションまたはトランザクションに関する非常に豊富な詳細を送信できることを意味します
はい、あなたが説明したことは、QueryBanding で簡単に実行できます。それを「輸送中のキーペア属性のワゴン」と考えてください。SQL 経由で、または bteq や jdbc などのセッション属性を使用してプログラム的にアクセスできます。
ネクロマンシング...既存の回答は、クエリバンドがどのように機能するかを説明するのに適していますが、完全に機能する例が見つからなかったため、ここに追加することを考えました.
Teradata でのクエリ バンドの設定については既に説明されているので、.NET クライアントからそれらを設定する方法の例を示します。
private void SetQueryBands()
{
TdQueryBand qb = Connection.QueryBand;
qb["CustomApplicationName"] = "MyAppName";
foreach (string key in CustomQueryBands.Keys)
{
qb[key] = CustomQueryBands[key];
}
Connection.ChangeQueryBand(qb);
}
Connection = new TdConnection(GetConnectionString());
Connection.Open();
SetQueryBands();
詳細については、こちらをご覧ください。
保存されたクエリバンド データを取得するには、GetQueryBandValue関数を使用できます。
SELECT CollectTimestamp, QueryBand,
GetQuerybandValue(queryband, 0, 'Key1') AS Value1,
GetQuerybandValue(queryband, 0, 'Key2') AS Value2,
GetQuerybandValue(queryband, 0, 'Key3') AS Value3,
FROM dbql_data.dbqlogtbl
WHERE dateofday = DATE - 1
AND queryband LIKE '%somekeyorvalue%'