Interstage Data Effector ユーザーズガイド
目次 索引 前ページ次ページ

付録E メモリ見積り式

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

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

見積り式

32ビット用Data Effectorの場合
15 × 1,024 × 1,024

    + min(( S ×( α × 2 × N × [(( 1 + A ) - logN)] × 70 ))

    + N × (( M × B + 12 + 24 + M + 1) + ( S × ( 1 + A ))) , P × 1,024 × 1,024 )

    + 2 × L
64ビット用Data Effectorの場合
15 × 1,024 × 1,024

    + min(( S ×( α × 2 × N × [(( 1 + A ) - logN)] × 144 ))

    + N × (( M × B + 24 + 40 + M + 1) + ( S × ( 1 + A ))) , P × 1,024 × 1,024 )

    + 2 × L
[(( 1 + A ) - logN)]の計算結果が1以下の場合は、1としてください。

記号の説明

変数

意味

単位

N

総レコード件数

件数

S

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

A

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

バイト

M

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

B

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

バイト

P

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

メガバイト

L

1レコードの最大長

バイト

α

ソートキー係数   (注5)

0 < α < 1

注1)

ソート式に指定したデータ長を指定します。
20を超える場合は20を指定します。

注2)

リターン式を省略した場合は、全項目数に1を設定してください。
リターン式を指定した場合は、リターン式に指定した集合関数(count、sum、max、min、avg)、val、rlenおよび項目名/テキスト式の数を指定します。ただし重複するものは数に含めないでください。
例:リターン式がval($A), rlen($B,10), rlen($C,20), $C の場合val ($A)とrlen($B)とrlen($C)で3となります。

注3)

リターン式を省略した場合は、データの平均サイズを指定してください。
リターン式を指定した場合は、リターン式に指定したval、rlen、項目名/テキスト式のデータ長の合計を指定します。
1つずつのデータ長は以下のように求めます。

注4)

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

注5)

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

見積り例

ソート機能のメモリ見積り例を以下に示します。
変動要因が以下の条件の場合

変数

意味

数値例

N

総レコード件数

100,000件数

S

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

4個

A

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

8バイト

M

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

8個

B

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

512バイト

P

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

1,000メガバイト

L

1レコードの最大長

2,048バイト

α

ソートキー係数

0.6

32ビット用Data Effectorの場合
15 × 1,024 × 1,024

    + min(( 4 ×( 0.6 × 2 × 100,000 × [(( 1 + 8 ) - log(100,000))] × 70 ))

    + 100,000 × (( 8 × 512 + 12 + 24 + 8 + 1) + ( 4 × ( 1 + 8 ))) , 1,000 × 1,024 × 1,024 )

    + 2 × 2,048 = 567,832,736 (約542メガバイト)
64ビット用Data Effectorの場合
15 × 1,024 × 1,024

    + min(( 4 ×( 0.6 × 2 × 100,000 × [(( 1 + 8 ) - log(100,000))] × 144 ))

    + 100,000 × (( 8 × 512 + 24 + 40 + 8 + 1) + ( 4 × ( 1 + 8 ))) , 1,000 × 1,024 × 1,024 )

    + 2 × 2,048 = 712,712,736 (約680メガバイト)

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

目次 索引 前ページ次ページ

Copyright 2007 FUJITSU LIMITED