17.00 - 17.05 - USINGオプション - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Release Date
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1184-170K-JPN
Language
日本語 (日本)

COLLECT STATISTICS (最適化ルーチン形式)のUSINGオプションは、指定する行サンプリングをより厳密に調整したり、指定する再収集しきい値の基準をデータの変更量が満たしていない場合に統計の再収集を回避したりするために使用できる各種のサンプリング オプションおよびしきい値オプションに適用されます。COLLECT STATISTICSリクエストでSUMMARYオプションも指定する場合は、USINGオプションを指定できません。サンプル統計およびしきい値を使用した統計の詳細については、サンプリングによる統計の収集コストの削減を参照してください。

USINGオプションの説明を以下のテーブルにまとめます。

オプション 説明
MAXINTERVALS n 収集した統計で使用するヒストグラム間隔の最大数です。Teradata Databaseは、ヒストグラムの最大サイズに応じて、指定されている間隔の最大数を調整する場合があります。

このオプションは、テーブルおよび定数式に対して有効です。

nの値は、整数でなければなりません。

nの有効な範囲は、0から500までです。

このオプションを指定しない場合は、ヒストグラムで使用する間隔の最大数がTeradata Databaseによって設定されます。

明示的な列またはインデックスも指定した場合にのみ、このオプションを指定できます。

暗黙指定のインデックスまたは列セットに関する統計の標準的な再収集では、MAXINTERVALS nを指定できません。

間隔の数として0を指定すると、サマリー統計(固有値の数やnullの数など)だけがリクエストで取り込まれることになります。

間隔の数が多くなると、ヒストグラムの統計データの最適な精密度の設定がそれだけ可能になります。精密度が高くなれば、均一でないデータの場合に単一テーブルと結合の選択に関する見積もりの精度が上がりますが、間隔の数が多ければ、ヒストグラムのサイズが大きくなり、結果的にクエリーの最適化にかかる時間が長くなるので、精密度の選択に関するこの最適な設定を適用するのは重要です。

MAXVALUELENGTH n ヒストグラム値(MinValue、ModeValue、MaxValueなど)の最大サイズです。nの値は、整数でなければなりません。
  • 単一列統計の場合、nの有効な範囲は、1から列の最大サイズまでです。
  • 複数列統計の場合、nの有効な範囲は、1からすべての列の最大サイズの合計値までです。

このオプションは、テーブルおよび定数式の両方に対して有効です。

最大サイズを上回るサイズを指定すると、その値がTeradata Databaseによって自動的に最大サイズに調整されます。

統計が組み込まれるヒストグラムのサイズによっては、指定した最大値がTeradata Databaseによって調整されることもあります。

MAXVALUELENGTHを指定しない場合は、ヒストグラムで使用する間隔の最大サイズがTeradata Databaseによって設定されます。

CHARACTER列およびVARCHAR列の単一文字の統計の場合、nは文字数を指定します。他のすべてのオプションの場合、nはバイト数を指定します。

複数列統計の場合は、Teradata Databaseによって値が連結され、必要に応じて、指定の最大サイズに合わせるために切り捨てが行なわれます。

単一列統計の場合、システムによって数値が切り捨てられることはありません。数値列の単一列統計の値全体が入りきらない指定になっている場合は、間隔のサイズが自動的に拡大されます。

複数列統計の場合、間隔の最大サイズに基づいて数値統計データが切り捨てられる場合は、最大サイズの上限で数値列が収まる程度にTeradata Databaseによって間隔の最大サイズが自動的に拡大されます。

最大サイズの値が大きいと、Teradata Databaseは、指定の最大サイズに達するまで値を保持するので、ばらつきのある列の場合に単一テーブルと結合の選択に関する見積もりの精度が上がります。ただし、最大サイズの値が大きければ、ヒストグラムのサイズも大きくなり、結果的にクエリーの最適化にかかる時間が長くなるので、必要な列のサイズを大きくするときには、慎重に検討することが必要です。

明示的な列またはインデックスも指定した場合にのみ、このオプションを指定できます。

暗黙指定のインデックスまたは列セットに関する統計の標準的な再収集では、MAXVALUELENGTH nを指定できません。

NO SAMPLE フル テーブル スキャンを使用して、指定の統計を収集します。

明示的なインデックスまたは列セットも指定した場合にのみ、このオプションを指定できます。

暗黙指定のインデックスまたは列セットに関する統計の標準的な再収集では、NO SAMPLEを指定できません。
  • 初回の統計収集の場合、NO SAMPLEはデフォルト設定を上書きします。
  • 統計の再収集の場合は、前のSAMPLEオプションがNO SAMPLEによって上書きされ、完全な統計が収集されます。
NO THRESHOLD
  • 統計の収集にいずれのしきい値も適用しません。
  • 統計を収集する前に既存のしきい値を削除します。

明示的な列またはインデックスも指定した場合にのみ、このオプションを指定できます。

暗黙指定のインデックスまたは列セットに関する統計の標準的な再収集では、NO THRESHOLDを指定できません。
  • 初回の統計収集の場合、NO THRESHOLDはデフォルト設定を上書きします。
  • 統計再収集の場合は、前に指定したTHRESHOLDオプションがNO THRESHOLDによって上書きされ、しきい値なしで統計が再収集されます。
NO THRESHOLD DAYS
  • 統計の収集にDAYSしきい値を適用しません。
  • 統計を収集する前に既存のDAYSしきい値を削除します。

明示的なインデックスまたは列セットも指定した場合にのみ、このオプションを指定できます。

暗黙指定のインデックスまたは列セットに関する統計の標準的な再収集では、NO THRESHOLD DAYSを指定できません。
  • 初回の統計収集の場合、NO THRESHOLD DAYSはデフォルト設定を上書きします。
  • 統計再収集の場合は、NO THRESHOLD DAYSによって前のDAYSしきい値指定が上書きされます。
NO THRESHOLD PERCENT
  • 統計の収集にPERCENT変更しきい値を適用しません。
  • 統計を収集する前に、既存のPERCENT変更しきい値を削除します。

明示的な列またはインデックスも指定した場合にのみ、このオプションを指定できます。

暗黙指定のインデックスまたは列セットに関する統計の標準的な再収集では、NO THRESHOLD PERCENTを指定できません。
  • 初回の統計収集の場合、NO THRESHOLD PERCENTはデフォルト設定を上書きします。
  • 統計の再収集では、NO THRESHOLD PERCENTが、以前の変更しきい値比率の指定をすべて上書きします。
SAMPLE システム設定のパーセンテージの行だけがテーブルでスキャンされ、指定した統計が収集されます。

SAMPLEとSYSTEM SAMPLEの意味は同じです。SAMPLEが用意されているのは、下位互換性のため、つまり、USING SAMPLEオプションを指定している既存のCOLLECT STATISTICSスクリプトを引き続き使用できるようにするためです。

SAMPLEの代わりにSYSTEM SAMPLEオプションを使用するようにしてください。

SAMPLE n PERCENT 統計の収集で、テーブルのすべての行のスキャンではなく、指定したパーセンテージの行だけのスキャンを行ないます。

nの値は、小数または整数(2~100)です。

SAMPLE 100 PERCENTを指定した場合の処理は、完全な統計の収集と同じです。

明示的なインデックスまたは列セットも指定した場合にのみ、このオプションを指定できます。

暗黙指定のインデックスまたは列セットに関する統計の標準的な再収集では、SAMPLE nPERCENTを指定できません。
  • 初回の統計収集の場合、指定したサンプル パーセンテージはデフォルト設定を上書きします。
  • 統計の再収集では、SAMPLE n PERCENTは以前のSAMPLEオプションの指定をオーバーライドし、代わりにテーブルの行のnパーセントをスキャンします。
SYSTEM MAXINTERVALS このヒストグラムにシステム設定の最大間隔数を使用します。

このオプションは、テーブルに対して有効です。

明示的なインデックスまたは列セットも指定した場合にのみ、このオプションを指定できます。

暗黙指定のインデックスまたは列セットに関する統計の標準的な再収集では、SYSTEM MAXINTERVALSを指定できません。

ヒストグラムにシステム設定の最大間隔数を使用します。

SYSTEM MAXVALUELENGTH ヒストグラム値(MinValue、ModeValue、MaxValueなど)の列の最大幅としてシステム設定の値を使用します。

このオプションは、テーブルに対して有効です。

明示的なインデックスまたは列セットも指定した場合にのみ、このオプションを指定できます。

暗黙指定のインデックスまたは列セットに関する統計の標準的な再収集では、SYSTEM MAXVALUELENGTHを指定できません。

SYSTEM SAMPLE システム設定パーセンテージの行をテーブルでスキャンして統計情報を収集します。Teradata Databaseは、サンプリング パーセンテージを低い値に下げる前に100%のサンプルを複数回収集する場合もあります。

SAMPLEオプションを指定しない場合は、SYSTEM SAMPLEがデフォルト オプションになります。

明示的なインデックスまたは列セットも指定した場合にのみ、このオプションを指定できます。

暗黙指定のインデックスまたは列セットに関する統計の標準的な再収集では、SYSTEM SAMPLEを指定できません。

STATISTICSフィールド グループのDBS制御フィールドSysSampleOptionには、このオプションのデフォルトが含まれています。詳細については、<Teradata Vantage™ - データベース ユーティリティ、B035-1102>を参照してください。

SYSTEM THRESHOLD 変更されたデータのパーセンテージまたは現在の統計の経過時間が統計に対して現在指定されているしきい値を超える場合にのみ、統計を収集します。

Teradata Databaseでは、適切な変更しきい値を自動的に決定し、変更がこのしきい値を下回る場合は再収集をスキップします。このことを行なうとき、最後の統計収集以降の変更(更新、削除、挿入)のカウント、列デモグラフィックの履歴、列使用データ、最適化ルーチンの外挿手法を考慮して、適切な変更しきい値が決定されます。

初回の統計収集の場合は、スキップされません。これは、データ変更の差分や統計の経過時間を判断するために使用できるヒストグラム データが存在しないためです。

変更しきい値は列ごとに変えることができます。

明示的なインデックスまたは列セットも指定した場合にのみ、このオプションを指定できます。

暗黙指定のインデックスまたは列セットに関する統計の標準的な再収集では、SYSTEM THRESHOLDを指定できません。

SYSTEM THRESHOLD DAYS 変更ベースのパーセンテージを統計再収集のしきい値として使用します。

明示的なインデックスまたは列セットも指定した場合にのみ、このオプションを指定できます。

暗黙指定のインデックスまたは列セットに関する統計の標準的な再収集では、SYSTEM THRESHOLD DAYSを指定できません。

SYSTEM THRESHOLD PERCENT 変更のパーセンテージにのみ適用されます。これは、PERCENTしきい値オプションを指定しない場合のデフォルトです。

Teradata Databaseでは、適切な変更しきい値を自動的に決定し、パーセンテージがこのしきい値を下回る場合は再収集をスキップします。このことを行なうとき、最後の統計収集以降の変更(更新、削除、挿入)のパーセンテージ、列デモグラフィックの履歴、列使用データ、最適化ルーチンの外挿手法を考慮して、適切な変更パーセンテージしきい値が決定されます。

明示的なインデックスまたは列セットも指定した場合にのみ、このオプションを指定できます。

暗黙指定のインデックスまたは列セットに関する統計の標準的な再収集では、SYSTEM THRESHOLD PERCENTを指定できません。

初回の統計収集の場合は、スキップされません。これは、データ変更のパーセンテージを判断するために使用できるヒストグラム データが存在しないためです。

STATISTICSフィールド グループのDBS制御フィールドSysChangeThresholdOptionには、このオプションのデフォルトが含まれています。詳細については、<Teradata Vantage™ - データベース ユーティリティ、B035-1102>を参照してください。

THRESHOLD n DAYS 統計の経過時間が指定日数を下回った場合は、統計を再収集しません。

nには、日数を表わす整数を指定する必要があります。

nの有効な範囲は、1から9999までです。

明示的なインデックスまたは列セットも指定した場合にのみ、このオプションを指定できます。

暗黙指定のインデックスまたは列セットに関する統計の標準的な再収集では、THRESHOLD nDAYSを指定できません。
  • 初回の統計収集の場合、統計の収集はスキップされません。これは、現在の統計の経過時間を判断するために使用できる最新のヒストグラムが存在しないためです。

    代わりに、指定した日数によってデフォルト設定が上書きされます。

  • 統計再収集の場合は、THRESHOLD n DAYSによって前のTHRESHOLD n DAYS指定が上書きされ、代わりに新規に指定した日数しきい値が収集に適用されます。

STATISTICSフィールド グループのDBS制御フィールドDefaultTimeThresholdには、このオプションのデフォルトが含まれています。詳細については、<Teradata Vantage™ - データベース ユーティリティ、B035-1102>を参照してください。

THRESHOLD n PERCENT 最後の収集以降のデータ変更パーセンテージが指定のパーセンテージを下回った場合は、統計を再収集しません。

nの値は、小数または整数です。

nの有効な範囲は、1から9999.99までです。

明示的な列またはインデックスも指定した場合にのみ、このオプションを指定できます。

暗黙指定のインデックスまたは列セットに関する統計の標準的な再収集では、THRESHOLD nPERCENTを指定できません。
  • 初回の統計収集の場合、THRESHOLD nPERCENTはデフォルト設定を上書きします。
  • 統計再収集の場合は、THRESHOLD n PERCENTによって前の変更パーセンテージしきい値指定が上書きされ、代わりに新規に指定したパーセンテージしきい値が適用されます。

STATISTICSフィールド グループのDBS制御フィールドDefaultUserChangeThresholdには、このオプションのデフォルトが含まれています。詳細については、<Teradata Vantage™ - データベース ユーティリティ、B035-1102>を参照してください。