ttOptSetColIntvlStats
説明
時間隔情報を含む、指定した列の統計を変更します。このプロシージャを使用すると、TimesTenが自動的に統計を計算するのではなく、アプリケーションで手動で統計を設定できます。この機能は、データが挿入される前にコマンドを準備したり、表の特性が実行計画の選択に与える影響を調べる場合に役立ちます。このプロシージャによって、COL_STATSシステム表の関連する行が変更されます。
このプロシージャは表にデータが存在する前から使用できるため、基本的な妥当性チェックは実行されますが、指定する値は実際の値とは関係のないものでもかまいません。
アクセス制御
アクセス制御がTimesTenのインスタンスに対して有効である場合、このプロシージャにはDDL権限が必要です。
構文
ttOptSetColIntvlStats ('tblName', 'colName', invalidate, (stats))
パラメータ
ttOptSetColIntvlStatsには、次のパラメータがあります。
パラメータ | データ型 | 説明 |
tblName | TT_Char (61) NOT NULL | アプリケーション表の名前。所有者を含めることができます。 |
colName | TT_Char (30) NOT NULL | 表内の列の名前。 |
invalidate | TT_INTEGER | 0(いいえ)または1(はい)。invalidateが1の場合、他のユーザーが準備したコマンドを含む、影響を受ける表を参照するすべてのコマンドは、再実行時に自動的に再準備されます。invalidateが0の場合、統計は変更されたとはみなされず、既存のコマンドは再準備されません。 |
stats | VARBINARY (409600) NOT NULL | 次の形式を使用して、列のstatsを設定します。 (numInterval integer, numNull integer, totUniq integer, totTups integer, /* information for interval 1 */ (numUniq integer, numTups integer, frequency of most occurred value integer, minVal, maxVal, modVal), /* information for interval 2 */ ...) |
結果セット
ttOptSetColIntvlStatsは結果を返しません。
例
列t1.x1に次のような統計を設定します。
- 2つの時間隔
- 整数型
- 10行のNULL値
- 10の一意値
- 100行
- 時間隔1(最も頻繁に出現する値の他に4つの一意値、最も頻繁に出現する値以外の値を持つ40の行、最も頻繁に出現する値を持つ10の行、min=1、max=10、mod=5)
- 時間隔2(最も頻繁に出現する値の他に4つの一意値、最も頻繁に出現する値以外の値を持つ20の行、最も頻繁に出現する値を持つ20の行、min=11、max=20、mod=15)
この場合、次の文を実行します。
CALLttOptSetColIntvlStats('t1', 'x1', 1, (2, 10, 10, 100,
(4, 40, 10, 1, 10, 5), (4, 20, 20, 11, 20, 15)));
注意
時間隔の最小値および最大値をVARBINARYとして指定する必要があります。NULL値を最小値または最大値として指定することはできません。値は、プラットフォーム固有のエンディアン形式で格納されます。
関連項目
ttOptEstimateStats
ttOptGetColStats
ttOptSetColStats
ttOptSetTblStats
ttOptUpdateStats