16.20 - RESTART INDEX ANALYSIS - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQLデータ操作言語

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Release Date
2019年3月
Content Type
プログラミング リファレンス
Publication ID
B035-1146-162K-JPN
Language
日本語 (日本)

目的

以前にチェックポイントを指定したINITIATE INDEX ANALYSISまたはRESTART INDEX ANALYSISリクエストによって開始してから停止したインデックス分析を再始動します。

インデックス分析の詳細は、以下を参照してください。

必要な権限

RESTART INDEX ANALYSISリクエストを実行するために必要な権限は、次のとおりです。

必要な権限 データベースQCD_nameに含まれるテーブル セット
INSERT
  • IndexColumns
  • IndexRecommendation
  • INSERT
  • DELETE
AnalysisLog

チェックポイントを指定したINITIATE INDEX ANALYSISリクエストを実行したユーザーが、RESTART INDEX ANALYSISリクエストを実行する必要があります。

構文



構文要素

workload_name
インデックス分析を再始動するワークロードの名前を指定します。
QCD_name
workload_nameのある問合わせキャプチャ データベースの名前を指定します。
index_name_tag
再始動されるインデックス分析の名前を指定します。
この名前の行がQCD AnalysisLogまたはAnalysisStmtsテーブルに存在する必要があります。存在しないと、インデックス分析を再始動できません。
CHECKPOINT checkpoint_trigger
問合わせを何回実行した後にチェックポイント スナップショットを取るかを指定します。
checkpoint_triggerの値は正の整数です。
  • 値が0の場合、Teradata DatabaseはCHECKPOINT句を無視します。
  • 値が分析対象の総問合わせ数より大きいと、Teradata Databaseはチェックポイントのスナップショットを取得しません。
例: CHECKPOINTの使用も参照してください。
TIME LIMIT = elapsed_time
この再始動したインデックス分析を完了させる最大経過時間(分)を指定します。
デフォルト値は、時間制限なしです。
指定値の許容範囲は、1から2880分(最大48時間)です。
elapsed_timeの値は整数値で指定する必要があります。
インデックス分析が指定時間制限内に完了しない場合は、システムによりタスクが停止され、指定時間が経過した時点で見つかった最良の推奨事項が維持されます。
指定した時間制限は近似値にすぎないことに注意してください。実行中のインデックス分析タスクでは、指定時間制限を超過したかどうかを一定時間ごとにチェックするからです。
例: インデックス分析でのTIME LIMITの設定を参照してください。

ANSI準拠

RESTART INDEX ANALYSISは、ANSI SQL:2011規格のTeradata拡張機能です。

呼び出し

通常は、Teradata Index Wizardユーティリティを使用して呼び出されます。

RESTART INDEX ANALYSISの実行ルール

RESTART INDEX ANALYSISのルールは、INITIATE INDEX ANALYSISを使用する際のルールと同じです。詳細については、INITIATE INDEX ANALYSISを実行する場合のルールを参照してください。

RESTART INDEX ANALYSISにはチェックポイントが必要

INITIATE INDEX ANALYSISリクエストにCHECKPOINT句を指定しないと、以前に停止したインデックス分析を再始動できません。

以前に時間切れになったINITIATE INDEX ANALYSISリクエストの結果に不満があり、より良い結果を得るために分析を延長する場合、CHECKPOINTを指定することで、INITIATE INDEX ANALYSISリクエスト全体を最初から再実行するのではなく、停止した時点から分析を再始動できます。

RESTART INDEX ANALYSISで実行されるアクション

RESTART INDEX ANALYSISはINITIATE INDEX ANALYSISのように機能しますが、RESTART INDEX ANALYSISによる分析は、AnalysisLogテーブルにロギングされたチェックポイントではない、ワークロード内の最初のSQLリクエストから始まる点が違います。

何らかの理由で再始動が完了せずにアボートすると、次のRESTART INDEX ANALYSISリクエストによる分析は、AnalysisLogテーブル内にチェックポイントとしてロギングされていない、ワークロード内の最初のSQLリクエストから始まります。

再始動が正常に完了すると、指定されたQCDのIndexRecommendationsテーブルにインデックスの推奨事項が書き込まれます。

マクロでサポートされないRESTART INDEX ANALYSIS

RESTART INDEX ANALYSISリクエストを、マクロから指定してはいけません。RESTART INDEX ANALYSISリクエストが含まれるマクロを実行すると、Teradata Databaseはそのリクエストをアボートし、エラーを返します。

例: CHECKPOINTがあるインデックス分析

システムにMyQCDという名前の問合わせキャプチャ データベースがあるとします。MyWorkloadMyQCDという名前のワークロードは100個のSQLリクエストから成ります。以下のSQLリクエストを実行すると、CHECKPOINT句の指定に基づき、インデックス分析の情報が10個のSQLリクエストごとに保存されます。

     INITIATE INDEX ANALYSIS ON tab1 
     FOR MyWorkload 
     IN MyQCD AS table_1Index 
     CHECKPOINT 10;

55番目のSQLリクエストの処理中にデータベースが再始動されたとします。この場合、システムでは、先頭から50個分の処理済みのSQLリクエストに関する情報が記録されます。

以下のSQLリクエストを実行すると、分析が51番目のSQLリクエストから行なわれます。

     RESTART INDEX ANALYSIS 
     FROM MyWorkload 
     IN MyQCD AS table1_Index;

例: CHECKPOINTがないインデックス分析

この例でも、システムにMyQCDというQCDがあり、MyWorkloadという名前のワークロードが100個のSQLリクエストから成るとします。

以下のSQLリクエストにはチェックポイントが指定されていないので、追加情報はMyQCDのAnalysisLogテーブルに書き込まれません。

     INITIATE INDEX ANALYSIS ON tab1 
     FOR MyWorkload 
     IN MyQCD AS table_1Index;

この例でも、55番目のSQLリクエストの処理中にデータベースが再始動されたとします。

指定されたインデックス分析名table_1Indexのチェックポイント分析に関する行がAnalysisLog内にないので、以下のSQLリクエストはエラーを返します。

     RESTART INDEX ANALYSIS      FROM MyWorkload      IN MyQCD AS table_1Index;

     *** Failure 5669 No restart information found for specified index      analysis ‘table_1Index'.