17.00 - 17.05 - 推奨マップのアクション リストのカスタマイズ - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - データベースの管理

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Release Date
2020年6月
Content Type
管理
Publication ID
B035-1093-170K-JPN
Language
日本語 (日本)
テーブルを別のマップに再割り当てする前に、ActionsTblの推奨アクションのリストをカスタマイズする場合があります。これは、テーブルが使用するマップを変更するプロセスにActionsTblが入力されるためです。次のいずれかのActionsTblの項目を変更できます。
  • テーブルのグループ化
  • グループ内のテーブルの順序
  • 推奨アクションのリスト
ActionsTblの計画済みアクションを変更するには、テーブルを更新するか、または行を削除します。アクションを追加するには、行を挿入します。ActionsTblにDML文を直接実行する場合は、ActionListName列にWHERE条件を含めて、指定されたアクション リストへの変更に制限する必要があります。次の手順は省略可能です。
  1. 推奨アクションを変更します。
    ActionsTblを更新します。例えば、ユーザーFiskに数行しかないcustomerテーブルがあり、さらに多くの行が追加される場合、AnalyzeSPはこれにスパース テーブルを推奨することがあります。
    sel * from tdmaps.actionsv where ActionListName  = 'Fiskobject' and databasename='Fisk' and tablename='customer';
    
    *** Query completed. One row found. 21 columns returned.
    *** Total elapsed time was 1 second.
    
                 ZoneName ?
                   Action Alter
                   Origin A
             DatabaseName FISK
                TableName customer
                SourceMap TD_Map2
           DestinationMap TD1AMPSPARSEMAP_1NODES
             CoLocateName ?
            ActionSQLText ALTER TABLE FISK.customer, MAP=TD1AMPSPARSEMAP_1NODES
           ActionListName Fiskobject
               GroupOrder   1.00
              ActionOrder  14.00
                TableSize                 1024
    FractionOfPermDBFree  9.99999630767549E-001
                   UDICnt                    ?
                 QueryCnt                    ?
                PKJoinCnt                    ?
       LastAlterTimeStamp 2017-02-06 14:55:02.440000-08:00
             LastAlterUID 10000000
                   Issues N
    ActionsTblDescription Table is very small. One-AMP sparse map is recommended. This Action is from running Analyzer without DBQL analysis.
    
    DBAは、テーブル サイズの増大のペースが早すぎるため、スパース マップを使用できないことを確認しました。次のSQL文によって、テーブルの推奨マップを変更できます。
    UPDATE tdmaps.ActionsTbl 
       SET ActionSQLText  = 'ALTER TABLE FISK.customer, MAP=TD_Map3',
           DestinationMap = 'TD_Map3',
           Origin         = 'U'
    WHERE ActionListName = 'fiskobject'
       AND DatabaseName   = 'fisk'
       AND TableName      = 'customer';
    
    次に、ActionsTblの更新が必要になるもう1つの例を示します。
    UPDATE tdmaps.ActionsTbl SET Action = 'Exclude', ActionsTblDescription = 'Slocum marks this exclude because this table will be dropped tomorrow so why move it?'
    WHERE DatabaseName = 'Slocum' AND TableName = 'Customer' AND ActionListName = 'MoveTablesToMap2';
    
    UPDATEを使用すると、履歴テーブルの変更の理由がログに記録されるため、DELETEの代わりにUPDATEを使用することを推奨します。
  2. テーブルのグループを再割り当てする順序を変更するか、テーブルをグループ内で再割り当てする順序を変更します。DBQLステップ ロギングを使用しない場合、テーブルはデータベースごとにグループ化されます。DBQLステップ ロギングを使用する場合、テーブルは結合の頻度によってグループ化されます。
    既存のグループの間に新しいグループを追加する場合は、GroupOrder列に小数値を使用します。グループ内に新しいアクションを追加する場合は、ActionOrder列に小数値を使用します。
    次に、実行の優先順位で上から下にリストされたActionsTbl行の例を示します。テーブルに関する次の情報に注意してください。
    • 元の値が'A'の行はAnalyzeSPによって生成され、'U'(またはNULL)値の行は後で手動のINSERT文によって追加されています。
    • テーブル't6'と't7'の行は、割り当てられたGroupOrder値の1.5が既存のグループ1と2の間になる新しいグループ内のユーザー定義アクションを表わします。
    • テーブル't10'~'t20'の行は、既存のグループ2に追加されたユーザー定義のアクションを表わします。ActionOrder値(1.1~1.11)に割り当てられた小数桁数値は、既存のActionOrder値1~2の間で順序付けされます。
    Action Origin TableName GroupOrder ActionOrder
    Alter A t1 1 1
    Alter A t2 1 2
    Alter A t3 1 3
    Alter U t6 1.5 1
    Alter U t7 1.5 2
    Alter A t4 2 1
    Alter U t10 2 1.1
    Alter U t11 2 1.2
    Alter U t12 2 1.3
    Alter U t13 2 1.4
    Alter U t14 2 1.5
    Alter U t15 2 1.6
    Alter U t16 2 1.7
    Alter U t17 2 1.8
    Alter U t18 2 1.9
    Alter U t19 2 1.10
    Alter U t20 2 1.11
    Alter A t5 2 2