処理効率を最大化するには、テーブルをそのサイズと結合機能に最も適したAMPに配置する必要があります。テーブルを他のAMPに移動する必要があるかどうかを判断するには、次の手順に従って、テーブルがマップにいかに効果的に割り当てられているかを分析します。これらのマップによって、AMPへのテーブルの配置が決まります。
- マップの効率を分析するテーブルを決定します。データベース、アプリケーション、またはクエリー バンドのいずれかに基づいてテーブル グループの分析を検討します。
- マップのリストを作成します。これを実行するには、CreateMapListSPを呼び出して空のリストを作成します。 例えば、
CALL tdmaps.CreateMapListSP('MyMapList', NULL, :ListId);
- システム拡張の計画を立てるためにこの分析を行なっている場合は、マップ リストに拡張前の(計画済みの)マップを含め、計画された拡張システムのノードとAMPの数を定義します。これを行なうには、CreateExpansionMapsを呼び出して、3つの計画済みマップをTDMaps.Mapsに挿入します。例えば、システムを2つから4つのノードに拡張する場合、拡張されたシステム上のAMPの数が40の場合は、以下のようになります。
CALL TDMaps.CreateExpansionMaps(4,40,:ContiguousMapString,:OneAmpSparseMapString,:TotalNodesSparseMapString);
これにより、3つの計画済みマップに対して次のプレースホルダー名が作成されます。これらはシステム拡張後に名前を変更する必要があります(システム拡張後のマップの名前変更を参照してください:- PREEXPANSIONMAP_CONTIGUOUSMAP_4NODES
- PREEXPANSIONMAP_1AMPSPARSEMAP_4NODES
PREEXPANSIONMAP_4AMPSSPARSEMAP_4NODES
- マップ リストにエントリを追加します。これは、マップまたはマップ名のリストです。これを実行するには、AddMapListEntrySPを呼び出します。 例えば、
CALL tdmaps.AddMapListEntrySP('MyMapList', 'MySparseMap');
- 分析するオブジェクトのリストを作成します。これを実行するには、まずCreateObjectListSPを呼び出して空のリストを作成します。 例えば、
CALL tdmaps.CreateObjectListSP('MyObjectList', NULL, :ObjectListId);
次に、AddObjectListEntrySPを呼び出してリストにテーブルを追加します。 例えば、CALL tdmaps.AddObjectListEntrySP('BillsList','Bill%',NULL,:NumObjectsAdded);
- 必要に応じて、リストからテーブルを除外します。これは、データベース全体のマップ再割り当てを検討し、データベースの一部のテーブルを除外する場合に便利です。まずCreateExclusionListSPを呼び出して除外するテーブルの空のリストを作成します。次に、AddExclusionListEntrySPを呼び出して、選択したテーブルを除外リストに追加します。 例えば、
CALL tdmaps.CreateExclusionListSP('BillsList', NULL, :ListId);
- テーブルを別のマップに再割り当てするための推奨リストを作成します。これを実行するには、AnalyzeSPを呼び出してTDMaps ActionsTblに推奨アクションを配置します。例えば、
-- Analyze tables in Personnel object list for queries logged over the -- last 7 days and recommend actions for moving them into MyNewMap -- CALL TDMaps.AnalyzeSP( 'MyNewMapList', 'Personnel',NULL, CAST(CURRENT_TIMESTAMP – INTERVAL '7' day AS TIMESTAMP), CURRENT_TIMESTAMP, 'DBC', 'MyNewMapActions', :NumAlters, :NumExcludes, :NumLogEntries);
DBQLステップ ロギングを有効にしなければ、一般的に分析が非常に高速になります。DBQL入力を考慮する分析の速度は、テーブル内の行数によって異なります。構文を含むこれらの手順の詳細については、<Teradata Vantage™ - SQL演算子およびユーザー定義関数、B035-1210>を参照してください。