ヘッダーをスキップ
Oracle TimesTen In-Memory Database APIおよびSQLリファレンス・ガイド
リリース6.0
B25770-02
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

ttOptEstimateStats

説明

指定した表の統計を更新します。このプロシージャは、指定した表内の行をランダムにサンプリングすることによって統計を推定します。サンプルのサイズは、指定した行の数(sampleSTRの形式が'N ROWS'の場合)または、行の総数の割合(sampleSTRの形式が'p PERCENT'の場合)です。

アクセス制御

アクセス制御がTimesTenのインスタンスに対して有効である場合、このプロシージャにはDDL権限が必要です。

構文
ttOptEstimateStats (tblName, invalidate, sampleStr) 
パラメータ

ttOptEstimateStatsには、次のパラメータがあります。

パラメータ
データ型
説明
tblName
Char(61)
アプリケーション表の名前。表の所有者を含めることができます。tblNameが空の文字列の場合、データ・ストア内の現在のユーザーが所有するすべての表で統計が推定されます。
invalidate
INTEGER

0(いいえ)または1(はい)。invalidateが1の場合、他のユーザーが準備したコマンドを含む、影響を受ける表を参照するすべてのコマンドは、再実行時に自動的に再準備されます。invalidateが0の場合、統計は変更されたとはみなされず、既存のコマンドは再準備されません。invalidateパラメータはオプションで、デフォルトは0です。

sampleStr
Varchar(255)
NOT NULL
'n ROWS'という形式の文字列(nは0より大きい整数)か、または'p PERCENT'という形式の文字列(pは0.0から100.0の間の浮動小数点)。

結果セット

ttOptEstimateStatsは結果を返しません。

CALL ttOptEstimateStats ( 'ACCTS', 1, '5 PERCENT' ); 
CALL ttOptEstimateStats ( 'ACCTS', 1, '75 ROWS' ); 
注意

TimesTenの統計には、各表の行数、各列の一意の値の数、各列の最大値および最小値が含まれます。TimesTenでは、列の値の配分は均一であると想定しています。

2,048バイトを超える列の場合、推定は行われず、これらの列の統計は更新されません。2,048バイトを超える列の統計を更新するには、ttOptUpdateStats組込みプロシージャを使用します。可変長列の場合、このプロシージャによって更新されるのは、列の最大長が2,048バイト以下である場合の統計のみです。

sampleSTRパラメータに非常に小さな値を選択した場合、このルーチンは高速に実行されますが、実行計画は最適にはならない可能性があります。計画の正確性を低下させることなく、統計の計算を高速に実行し、適切なデータ分布を得るには、10%程度の選択が適しています。指定した行の数が十分であるか、または対象となる表が十分小さい場合、TimesTenはパフォーマンスを向上させるために、長さが2,048バイト以下のすべての列に対して、正確な統計を計算します。たとえば、ttOptEstimateStats ('ACCTS', 1, '100 PERCENT' )とttOptUpdateStats ( 'ACCTS', 1 )の相違点は、ttOptEstimateStatsが長い列の統計を計算しないということのみです。

統計は、システム表TBL_STATSおよびCOL_STATSに格納されます。

関連項目

ttOptSetColIntvlStats
ttOptSetFlag
ttOptSetOrder
ttOptSetTblStats
ttOptUpdateStats
ttOptUseIndex