table-size

table-size -name <name> -json <string>
    [-rows <num> [[-primarykey | -index <name>] -keyprefix <size>]] 

行入力を使用して指定の表のキーおよびデータ・サイズを計算し、必要に応じて、同じ書式の指定行数に必要なNoSQL DBキャッシュ・サイズを見積もります。複数のサンプル行でこのコマンドを実行することにより、ストア・パフォーマンスに必要なキャッシュ・サイズを決定するのに役立ちます。

  • -jsonでは、計算に使用するサンプル行を指定します。

  • -rowsでは、キャッシュ・サイズの計算に使用する行数を指定します

  • -indexまたは-primarykeyおよび-keyprefixを使用して、索引キーの予期する共通点をバイト数単位で指定できます。

このコマンドの主な実行内容は次のとおりです。

  1. JSON形式の入力行に基づいてキーとデータのサイズを計算します。

  2. 同じJSON形式で指定された行数に必要なDBキャッシュ・サイズを推定します。

    出力には、主キー/索引に関する詳細なサイズ情報と合計サイズが含まれ、内部的にJEのDbCacheSizeユーティリティを呼び出して、入力パラメータを利用し、主キーと索引に必要なキャッシュ・サイズを計算します。

    java -jar $KVHOME/dist/lib/je.jar DbCacheSize
    -records <num> -key <size> -data <size> -keyprefix
    <size> -outputproperties -replicated <JE properties...>
    -duplicates] 

    説明:

    • -records <num>: -row <num>によって指定された行の数。

    • -key <size>: ステップ1で取得されるキーのサイズ。

    • -data <size>: ステップ1で取得されるデータのサイズ。

    • -keyprefix <size>: -primarykey | -index <name> -keyprefix <size>を使用して指定される、キーの予測される共通点

    • -duplicates: 表索引のためにのみ使用されます。

    • -<JE properties...>: kvstoreで使用されるJE構成パラメータ。

次に例を示します。

kv-> execute "create table user (id integer, address string,
zip_code string, primary key(id))"
kv-> execute "create index idx1 on user (zip_code)" 

次の場合を参照してください。

  1. JSONの入力行に基づいてキーとデータのサイズを計算します。

    kv-> table-size -name user -json '{"id":1,
    "address": "Oracle Building ZPark BeiJing China",
    "zip_code":"100000"}'
    
    === Key and Data Size ===
    
          Name         Number of Bytes
    -----------------  ---------------
    Primary Key               8
    Data                     47
    Index Key of idx1         7 
  2. 10000行の表のキー/データのサイズとキャッシュ・サイズを計算します。

    kv-> table-size -name user -json '{"id":1,
    "address": "Oracle Building ZPark BeiJing China",
    "zip_code":"100000"}'
    -rows 10000
    === Key and Data Size ===
    
          Name         Number of Bytes
    -----------------  ---------------
    Primary Key               8
    Data                     47
    Index Key of idx1         7
    
    === Environment Cache Overhead ===
    
    16,798,797 minimum bytes
    
    === Database Cache Sizes ===
    
    Name   Number of Bytes             Description
    -----  ---------------  ----------------------------------
                 1,024,690  Internal nodes only
    Table        1,024,690  Internal nodes and record versions
                 1,024,690  Internal nodes and leaf nodes
    -----  ---------------  ----------------------------------
                   413,728  Internal nodes only
    idx1           413,728  Internal nodes and record versions
                   413,728  Internal nodes and leaf nodes
    -----  ---------------  ----------------------------------
                 1,438,418  Internal nodes only
    Total        1,438,418  Internal nodes and record versions
                 1,438,418  Internal nodes and leaf nodes 

    詳細は、DbCacheSizeのjavadocを参照してください。

    ノート:

    キャッシュ・サイズは、次の方法で計算されます。

    • 表のキャッシュ・サイズ

      java -jar KVHOME/lib/je.jar DbCacheSize -records
         10000 key 8 -data 47 -outputproperties -replicated
         <JE properties...> 

      パラメータは次のとおりです。

      • レコード番号: 10000

      • 主キー・サイズ: 8

      • データ・サイズ: 47

    • 表のキャッシュ・サイズ

       java -jar KVHOME/lib/je.jar DbCacheSize -records
         10000 -key 7 -data 8 -outputproperties -replicated
         <JE properties...> -duplicates 

      パラメータは次のとおりです。

      • レコード番号: 10000

      • 索引キー・サイズ: 7

      • データ・サイズ: 8。セカンダリ索引のデータが主キーなので、ここでは主キー・サイズを使用しています。

      • 索引に-duplicatesを使用します。

    • 合計サイズ = 表のキャッシュ・サイズ+idx1のキャッシュ・サイズ。

  3. idx1のキー接頭辞サイズでキャッシュ・サイズを計算します
    kv-> table-size -name user -json
    '{"id":1, "address":"Oracle Building ZPark BeiJing China",
    "zip_code":"100000"}' -rows 10000 -index idx1 -keyprefix 3
    
    === Key and Data Size ===
    
    
          Name         Number of Bytes
    -----------------  ---------------
    Primary Key               8
    Data                     47
    Index Key of idx1         7
    
    === Environment Cache Overhead ===
    
    16,798,797 minimum bytes
    
    === Database Cache Sizes ===
    
    Name   Number of Bytes             Description
    -----  ---------------  ----------------------------------
                 1,024,690  Internal nodes only
    Table        1,024,690  Internal nodes and record versions
                 1,024,690  Internal nodes and leaf nodes
    -----  ---------------  ----------------------------------
                   413,691  Internal nodes only
    idx1           413,691  Internal nodes and record versions
                   413,691  Internal nodes and leaf nodes
    -----  ---------------  ----------------------------------
                 1,438,381  Internal nodes only
    Total        1,438,381  Internal nodes and record versions
                 1,438,381  Internal nodes and leaf nodes 

    詳細は、DbCacheSizeのjavadocを参照してください。

    ノート:

    idx1にはキー接頭辞サイズが与えられ、idx1のキャッシュ・サイズは次のように計算されます。

    java -jar KVHOME/lib/je.jar DbCacheSize -records
    10000 -key 7 -data 8 -keyprefix 3 -outputproperties 
    -replicated <JE properties...> -duplicates 

    上の例では、idx1のキャッシュ・サイズが413,691であり、ケース2の413,728より小さいことがわかります。keyprefixの使用方法の詳細は、JE DbCacheSizeのドキュメントを参照してください。