17.10 - 例: DBQLルール階層の複数レベルの検索 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-171K-JPN
Language
日本語 (日本)

これらの例は、ルール階層の最初の検索レベルで必ずしもルールが一致するわけではないという状況で、SHOW QUERY LOGGINGリクエストが問合わせロギング ルールをどのように報告するかを示しています。例: すべてのアカウントに対するすべてのユーザーを記録する、デフォルト ロギングを使用したDBQLルールのレポートから例: MultiLoadユーティリティのすべての問合わせを記録するDBQLルールのレポートを参照してください。

次の問合わせロギング ルールが、そのSQLテキストで指定されているように、DBC.DBQLRulesTblに作成されているものとします(DBC.DBQLRulesビューを使用して表示)。特定のロギング オプションのいくつかの相違を除いて(ルール2、3、5を参照)、ここでのこれらのロギング ルールは、例: 簡単な条件に対するSHOW QUERY LOGGINGのルールと同じです。

  1. BEGIN QUERY LOGGING ON ALL;

    このリクエストは、デフォルトのロギングを使用して、すべてのユーザーおよびすべてのアカウントに対するロギング ルールを作成します。

    DBC.DBQLRulesのルール1の行は、次のとおりです。

        Rule UserName   "ALL" (From an ALL rule)
          Rule UserId   00000000
              Account   (Rule for any Account)
    
           DBQL RULE:
              Explain   F
               Object   F
                  SQL   F
                 Step   F
              XMLPlan   F
           StatsUsage   F
             UseCount   F
                Param   F
              Verbose   F
         StatsDetails   F
          UtilityInfo   F
              Summary   F
            Threshold   F
      Text Size Limit   200 
  2. BEGIN QUERY LOGGING WITH OBJECTS ON ALL ACCOUNT = 'finance';

    このリクエストは、アカウント名financeにログオンしたすべてのユーザーに対するロギング ルールを作成し、オブジェクトを記録します。

    DBC.DBQLRulesのルール2の行は、次のとおりです。

        Rule UserName   "ALL" (From an ALL rule)
          Rule UserId   00000000
              Account   FINANCE
    
           DBQL RULE:
              Explain   F
               Object   F
                  SQL   F
                 Step   F
              XMLPlan   F
           StatsUsage   F
             UseCount   F
                Param   F
              Verbose   F
         StatsDetails   F
          UtilityInfo   F
              Summary   F
            Threshold   F
      Text Size Limit   200 
  3. BEGIN QUERY LOGGING WITH STEPINFO ON user1 ACCOUNT = 'marketing';

    このリクエストは、user1がアカウント名marketingにログオンしたときに、このユーザーに対してロギング ルールを作成し、ステップ情報を記録します。

    DBC.DBQLRulesのルール3の行は、次のとおりです。

        Rule UserName   user1
          Rule UserId   00001244
              Account   MARKETING
    
           DBQL RULE:
              Explain   F
               Object   F
                  SQL   F
                 Step   F
              XMLPlan   F
           StatsUsage   F
             UseCount   F
                Param   F
              Verbose   F
         StatsDetails   F
          UtilityInfo   F
              Summary   F
            Threshold   F
      Text Size Limit   200 
  4. BEGIN QUERY LOGGING ON user1 ACCOUNT = 'hr';

    このリクエストは、user1がアカウント名hrにログオンしたときに、デフォルトのロギングを使用してこのユーザーのロギング ルールを作成します。

    DBC.DBQLRulesのルール4の行は、次のとおりです。

        Rule UserName   user1
          Rule UserId   00001244
              Account   HR
    
           DBQL RULE:
              Explain   F
               Object   F
                  SQL   F
                 Step   F
              XMLPlan   F
           StatsUsage   F
             UseCount   F
                Param   F
              Verbose   F
         StatsDetails   F
          UtilityInfo   F
              Summary   F
            Threshold   F
      Text Size Limit   200 
  5. BEGIN QUERY LOGGING WITH SQL ON user1;

    このリクエストは、user1が任意のアカウント名にログオンしたときに、このユーザーに対するロギング ルールを作成し、SQLを記録します。

    DBC.DBQLRulesのルール5の行は、次のとおりです。

        Rule UserName   user1
          Rule UserId   00001244
              Account   (Rule for any Account)
    
           DBQL RULE:
              Explain   F
               Object   F
                  SQL   F
                 Step   F
              XMLPlan   F
           StatsUsage   F
             UseCount   F
                Param   F
              Verbose   F
         StatsDetails   F
          UtilityInfo   F
              Summary   F
            Threshold   F
      Text Size Limit   200 
  6. BEGIN QUERY LOGGING WITH NONE ON APPLNAME = 'multload';

    このリクエストは、ロギングを行なわずにMultiLoadアプリケーションのロギング ルールを作成します。

    DBC.DBQLRulesのルール6の行は、次のとおりです。

    Rule UserName  "ALL"
    Rule UserId     00000000
    Account        (Rule for any Account)
    ApplicationName   MULTLOAD
    WITH NONE         (No DBQL Logging)

これらのルールの階層は最初の例と同じで、以下のようになります。

階層レベル ルール番号
1 6
2 3
3 4
4 5
5 2
6 1