Database Query Log (DBQL)は、ユーザーが指定したルールに基づいて様々な履歴情報を格納可能な一連の事前定義の表を提供する、Teradata Databaseの機能です。具体的には、問合わせとその継続時間、性能、およびターゲット アクティビティの履歴が格納されます。
DBQLは柔軟に設計されているので、短いトランザクションから、より実行時間の長い分析やデータ マイニングの問合わせまで、Teradata Database上で実行される様々なSQL要求に関する情報を記録できます。
DBQLには、問合わせの具体的な情報を記録するよう要求できますが、単に条件を満たす問合わせのカウントだけを記録させることも可能です。また、DBQLがセッションに適用する階層形式のルールを指定できます。これにより、Teradata Databaseシステムを使用するたびに適切な量のロギング データを捕捉する上での柔軟性を大幅に向上させることが可能になります。ルールの対象には、以下のものを指定できます。
- FastLoadやMultiLoadなどの、アプリケーション名
- 1人のユーザーと特定のアカウント
- 1人のユーザーとすべてのアカウント
- すべてのユーザーと特定のアカウント
- すべてのユーザーとすべてのアカウント
各ルールには、記録対象の基準を以下の項目の組み合わせとして指定できます。
- 一連の時間間隔またはしきい値のいずれかとしての経過時間、CPU時間、またはI/Oカウントに基づいたデータの要約
- 識別情報、性能、カウント、エラー コード、SQLテキストを含む、要求レベルでの詳細のレポート
- 以下のいずれかまたはすべてを含む、その他の任意選択の詳細データ
- 要求で使用されたオブジェクト
- 各ステップ、およびステップごとの性能データ
- SQLテキストの全文
- Explainテキスト
- XML文書として記録された最適化ルーチンの問合わせ計画情報
例えば、「特定のアカウントで特定のユーザーが開始したセッション中に実行されたあらゆる問合わせについて、問合わせの完了までに要した時間が指定されたしきい値を超過した場合に、その問合わせのSQLの先頭の4,000字をログに記録する」ことをDBSに指示するルールを定義できます。
DBQLを実装するためには、単純なSQL要求を使用して、ロギング活動の開始と終了を制御します。これらのルールは、Teradata Databaseシステムの管理を支援する目的で必要に応じて動的に変更することができます。