ttSize

このプロシージャは、表またはビューのサイズおよび索引のサイズを推定します。表の推定バイト数が単一のDOUBLE列を持つ単一行として返されます。表は、表名または完全修飾された表名のいずれかとして指定できます。nrowsパラメータがNULL以外の場合、現在の表の統計が指定した行数まで拡大したものと想定して表のサイズが推定されます。nrowsパラメータがNULLの場合、表のサイズは現在の行数を使用して推定されます。

現在の表のコンテンツをスキャンして、VARBINARYおよびVARCHAR列の平均サイズが判断されます。表が空の場合、VARBINARY列とVARCHAR列の平均サイズは、宣言されている最大サイズの半分になるように推定されます。ttSizeによって計算される推定値には、表、VARBINARY列とVARCHAR列、およびその表に定義された索引の記憶域が含まれます。

この組込みプロシージャをコールすると表がスキャンされます。NULL以外のfrac値(01の間)を指定することによって、表のスキャンを回避できます。この値は、可変長列の平均サイズを推定します。frac値を各可変長列の最大サイズに掛けて、VARBINARY列またはVARCHAR列の推定平均サイズを計算します。fracパラメータを指定しないと、表内の既存の行がスキャンされ、既存の行における可変長列の平均長が使用されます。fracを省略した場合、表に行が存在しないと、fracの値は0.5であると想定されます。

必要な権限

このプロシージャでは、指定した表に対するSELECT権限が必要です。

TimesTen ScaleoutおよびTimesTen Classicでの使用

このプロシージャは、TimesTen Classicでサポートされています。

TimesTen Scaleoutアプリケーションでこの組込みプロシージャをコールできます。

このプロシージャは、コール元の要素の行を返します。他の要素に関する情報を表示するには、SYS.GV$TABLE_SIZESシステム表を問い合せます。

関連ビュー

このプロシージャには関連ビューはありません。

構文

ttSize(['tblName'], [nRows], frac)

パラメータ

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

パラメータ 説明

tblName

TT_CHAR(61)

アプリケーション表の名前。表の所有者を含めることができます。このパラメータはオプションです。指定しなかった場合、すべての表のサイズが返されます。

表名の指定にシノニムは使用できません。

nRows

TT_BIGINT

推定される表内の行数。このパラメータはオプションです。

frac

BINARY_DOUBLE

VARBINARY列またはVARCHAR列のサイズの推定される平均端数。このパラメータはオプションです。

結果セット

ttSizeは、次の結果セットを返します。

説明

size

BINARY_DOUBLE NOT NULL

推定される表のサイズ(バイト)。

CALL ttSize('ACCTS', 1000000, NULL);

CALL ttSize('ACCTS', 30000, 0.8);

CALL ttSize('SALES.FORECAST', NULL, NULL);

ttSizeを使用する場合、コマンドを実行した後に結果をフェッチする必要があります。例:

ODBC

double size;
SQLLEN len;

rc = SQLExecDirect(hstmt, "call ttSize('SalesData', 250000, 
0.75)", SQL_NTS);
rc = SQLBindColumn(hstmt, 1, SQL_C_DOUBLE, &size, sizeof double, 
&len);
rc = SQLFetch(hstmt);
rc = SQLFreeStmt(hstmt, SQL_CLOSE);

JDBC

. . . . . .
String URL="jdbc:timesten:MyDataStore";
Connection con;
double tblSize=0;
. . . . . .
con = DriverManager.getConnection(URL);
CallableStatement cStmt = con.prepareCall("
{CALL ttSize('SalesData', 250000, 0.75) }");
if( cStmt.execute() ) 
  {
   rs=cStmt.getResultSet();
   if (rs.next()) {
    tblSize=rs.getDouble(1);
   }
   rs.close();
  }
cStmt.close();
con.close();

. . . . . .

ノート:

ttSizeプロシージャを使用すると、行が完全にロードされたときに表がどの程度大きくなるかを、少量のサンプルをもとに推定できます。最適な結果を得るには、1,000以上の典型的な行を表にロードします。

関連項目