ttOptEstimateStats
ttOptEstimateStats
プロシージャは、指定した表の統計を更新します。このプロシージャは、指定した表内の行をランダムにサンプリングすることによって統計を推定します。サンプルのサイズは、指定した行の数(sampleStr
の形式が'
n
ROWS'
の場合)または、行の総数の割合(sampleStr
の形式が'
p
PERCENT
'
の場合)です。
tblName
が指定されていない場合、このプロシージャは現在のユーザーが所有するすべての表に対して処理されます。ユーザーがインスタンス管理者である場合、インスタンス管理者が所有する表のみが更新されます。表がユーザーによって所有されていない場合、ユーザーは自分のユーザー名で表名を修飾して、現在のユーザーの統計を更新できます。
統計が更新されたかどうかを判断するには、この操作を実行する前と後で、システム表SYS.COL_STATS
およびSYS.TBL_STATS
を確認します。
必要な権限
ユーザーが表の所有者である場合またはtblName
が指定されていない場合、このプロシージャに権限は不要です。ユーザーが表の所有者でない場合、このプロシージャにはALTER ANY TABLE
権限が必要です。
TimesTen ScaleoutおよびTimesTen Classicでの使用
このプロシージャは、TimesTen Classicでサポートされています。
TimesTen Scaleoutアプリケーションでこの組込みプロシージャをコールできます。
TimesTen Scaleoutでは、このプロシージャはグリッド内のすべての要素に対して実行されます。
構文
ttOptEstimateStats(['tblName'], [invalidate], 'sampleStr')
パラメータ
ttOptEstimateStats
には、次のパラメータがあります。
パラメータ | 型 | 説明 |
---|---|---|
|
|
アプリケーション表の名前。表の所有者を含めることができます。 表名の指定にシノニムは使用できません。 |
|
|
0 (no)または1 (yes)。
|
|
|
|
結果セット
ttOptEstimateStats
は結果を返しません。
例
CALL ttOptEstimateStats ( 'ACCTS', 1, '5 PERCENT' ); CALL ttOptEstimateStats ( 'ACCTS', 1, '75 ROWS' );
ノート
-
TimesTenの統計には、各表の行数、各列の一意の値の数、各列の最大値および最小値が含まれます。TimesTenでは、列の値の配分は均一であると想定しています。
-
このプロシージャは、表の行の50%より少ないサンプルで実行した場合にのみ、
ttOptUpdateStats
よりも高速で実行されます。 -
2,048バイトを超える列の場合、推定は行われず、これらの列の統計は更新されません。2,048バイトを超える列の統計を更新するには、ttOptUpdateStats組込みプロシージャを使用します。可変長列の場合、このプロシージャによって更新されるのは、列の最大長が2,048バイト以下である場合の統計のみです。
-
sampleStr
パラメータに非常に小さな値を選択した場合、このプロシージャは高速に実行されますが、実行計画は最適にはならない可能性があります。計画の正確性を低下させることなく、統計の計算を高速に実行し、適切なデータ分布を得るには、10%程度の選択が適しています。指定した行の数が大きいか、または対象となる表が小さい場合、TimesTenはパフォーマンスを向上させるために、長さが2,048バイト以下のすべての列に対して、正確な統計を計算します。たとえば、次の2つの相違点として、ttOptEstimateStats ('ACCTS', 1, '100 PERCENT' )
および
ttOptUpdateStats( 'ACCTS', 1 )
前者が長い列の統計を計算しないということのみです。
-
統計は、システム表
TBL_STATS
およびCOL_STATS
に格納されます。 -
パフォーマンス上の理由から、
ttOptEstimateStats
では、統計が計算される際に表または行のロックは保持されません。ただし、TimesTenシステム表に対するロックは保持されます。統計の計算をそのように行った場合でも、パフォーマンスが低下する可能性があります。統計は、正確に計算するよりも推定した方が一般にパフォーマンスは向上します。 -
システム表を更新する権限がある場合、空の表リストを指定して統計を見積もり、または更新すると、システム表の統計も更新されます。