ページのトップに戻る
Interstage Data Effector ユーザーズガイド

E.4 ソート機能のメモリ見積り式

ソート機能のメモリ見積り式について、説明します。

見積り式

記号の説明

変数

意味

単位

N

総レコード件数

件数

S

ソート式に指定したソート項目の数

A

ソート式に指定したソート項目の平均サイズ    (注1)

バイト

M

リターン式に指定した関数および項目名/テキスト式/仮想項目の数 (注2)

B

リターン式に指定した出力項目の平均サイズ  (注3)

バイト

MM

ソート機能で利用するメモリサイズ    (注4)

メガバイト

L

1レコードの最大長

バイト

α

ソートキー係数     (注5)

0 < α < 1

P

並列数 (注6)

V

仮想項目定義数

VC

仮想項目の関係式に指定するリテラルの文字数(注7)の合計

-

1)

ソート式に指定したデータ長を指定します。

  • val関数、数値関数、および数値型の仮想項目の場合: 16

  • substr関数の場合: substr関数の文字列長に指定した文字数分のバイト長(平均)

  • 項目名、テキスト式、文字列型の仮想項目、およびrtrim関数の場合: 項目名、テキスト式、文字列型の仮想項目、およびrtrim関数の引数に指定した項目が示すデータのバイト長(平均)
    20を超える場合は20を指定します。

  • 日付値関数、および日付型の仮想項目の場合: 6

  • 時刻関数、および時刻型の仮想項目の場合: 3

  • 日時値関数、および日時型の仮想項目の場合: 9

2)

リターン式を省略した場合は、全項目数に1を設定してください。
リターン式を指定した場合は、リターン式に指定した集合関数(count、sum、max、min、avg)、val関数、substr関数および項目名/テキスト式/仮想項目の数を指定します。ただし重複するものは数に含めないでください。

例:リターン式がval($A), substr($B,10), substr($C,20), $C の場合val ($A)とsubstr($B)とsubstr($C)で3となります。

3)

リターン式を省略した場合は、データの平均サイズを指定してください。
リターン式を指定した場合は、リターン式に指定した関数、項目名/テキスト式/仮想項目のデータ長の合計を指定します。

  • 項目名/テキスト式のデータ長: 項目名/テキスト式が示すデータの文字数分のバイト長

  • 文字列型の仮想項目のデータ長: 仮想項目が示すデータの文字数分のバイト長

  • 数値型の仮想項目のデータ長: 16

  • 日付型の仮想項目のデータ長: 6

  • 時刻型の仮想項目のデータ長: 3

  • 日時型の仮想項目のデータ長: 9

関数のデータ長は、関数の引数に指定した項目名/テキスト式/仮想項目のデータ長を上記に従って求めます。

注4)
  • コマンドの場合
    ソート条件ファイルのMemorySizeパラメタに指定された値を指定してください。MemorySizeパラメタを省略した場合には、1000を指定してください。

  • C APIの場合
    AsisSetEnvSort関数の呼出し時に指定したMemorySizeパラメタを指定してください。MemorySizeパラメタに0を指定した場合には、1000を指定してください。

見積り式には、メガバイト値を指定してください。バイトに換算する必要はありません。
ただし、32ビット用Data Effectorを使用する場合、指定可能サイズに制限があります。詳細は、“B.4.2 ソート条件ファイル”を参照ください。

5)

ソート式に指定した項目のデータの内容に依存します。

  • キーの後半に値の変化が多い場合:0.4
    例:(000001、000002、000012、000125など)

  • キーの前半に値の変化が多い場合:0.6
    例:(100-001、210-001、321-001など)

  • キーの全体に値の変化が多い場合:0.8
    例:(123456、234512、912384など)

注6)
  • C APIの場合は、1を指定します。

  • コマンドの場合は、sort用動作環境ファイルのInFileパラメタおよび、ParallelNumパラメタの指定によって決定します。詳細は“B.4.1 sort用動作環境ファイル”のParallelNumパラメタを参照してください。

注7)

リテラルのバイト数は、以下のように計算します。

  • 文字列リテラルの場合のデータ長:指定したリテラルのバイト数

  • 数値リテラルの場合のデータ長:16

  • 日付リテラルの場合のデータ長:6

  • 時刻リテラルの場合のデータ長:3

  • 日時リテラルの場合のデータ長:9

  • EMPTYの場合のデータ長:0


見積り例

ソート機能のメモリ見積り例を以下に示します。

変動要因が以下の条件の場合

変数

意味

数値例

N

総レコード件数

100,000件数

S

ソート式に指定したソート項目の数

4個

A

ソート式に指定したソート項目の平均サイズ

8バイト

M

リターン式に指定した関数および項目名/テキスト式の数

8個

B

リターン式に指定した出力項目の平均サイズ

512バイト

MM

ソート機能で利用するメモリサイズ

1,000メガバイト

L

1レコードの最大長

2,048バイト

α

ソートキー係数

0.6

P

並列数

1

V

仮想項目定義数

1個

VC

仮想項目の関係式に指定するリテラルの文字数の合計

16


注意

ソート式に指定された項目の内容(ばらつき度合い)により、実際のメモリ使用量が見積り結果より大きくなる場合があります。
そのため、必ず実機で測定し、確認してください。