【iDempiere Lab】JPiereのボリュームテストメモ-1000万伝票1億明細

JPiereを使用したボリュームテストのメモ。

基本的な操作は問題なく行えている。このレベルになると、登録専用の画面を作成し、更新の際には検索ウィンドウよりズームするようにするなど、操作的に大量ボリューム対応できるように準備しておく必要があると感じる。

JPiereでは、大量ボリュームを意識した各種設定を予め施しています。詳しくは"JPiereのパフォーマンス改善への取り組み"を参照して下さい。

ボリュームテストの目標としていた1,000万伝票1億明細を達成したので、ボリュームテストはひとまずこれで終了します。

テスト環境

Windows10 - 64bit ノートPC

  • Intel Core i7 - 4510U CPU @2.00GHz
  • メモリ16GB
  • SSD(※ただしボリュームテストのDBはUSB3接続の外付けSSD)
  • PostgreSQL9.4

DB概要

USB3接続の外付けSSD(2TB)にデータを格納。

DBサイズ:約564GB

【補足説明】

データボリュームによるパフォーマンスの違いを検証するために、900万伝票に達する過程で次のテーブルのレコードをいったんすべて削除しました。

  • M_CostDetail
  • M_CostHistory

検証の結果としては、上記のテーブルのレコードを削除しても、出荷納品伝票や入荷伝票の登録パフォーマンスに好影響がある事は確認できませんでした。

【補足説明】インデックスの追加

900万伝票に達する過程でC_OrdetテーブルのBill_BPartner_IDにインデックスを追加しています。これにより、900万伝票から1000万伝票にかけての伝票登録処理を大幅に短縮化する事ができました。

 

[関連するコンテンツ]

主なマスタ情報

取引先マスタ - 10万件

◆C_BPartnerテーブル情報

  • レコード件数(Count関数使用):100,125
  • テーブルサイズ(統計情報参照):47MB
  • インデックスサイズ(統計情報参照):42MB

品目マスタ - 10万件

◆M_Productテーブル情報

  • レコード件数(Count関数使用):100,080
  • テーブルサイズ(統計情報参照):31MB
  • インデックスサイズ(統計情報参照):23MB

販売管理と購買管理

受注伝票と発注伝票 - 合計1,000万伝票 1億明細

1伝票10明細で伝票登録。

受注伝票(標準入力:登録専用)ウィンドウと発注伝票ウィンドウ(標準入力)において、通常通り伝票登録できる事を確認した。

◆C_Orderテーブル情報

  • レコード件数(Count関数使用):10,025,955
  • テーブルサイズ(統計情報参照):4,277MB
  • インデックスサイズ(統計情報参照):4,562MB

◆C_OrderLineテーブル情報

  • レコード件数(Count関数使用):100,318,226
  • テーブルサイズ(統計情報参照):40GB
  • インデックスサイズ(統計情報参照):24GB

 

出荷納品伝票と入荷伝票 - 合計1,002万伝票 9,031万明細

1伝票10明細で伝票登録。

受注伝票をもとに出荷納品伝票を作成し、通常通り伝票登録ができる事を確認した。同様に、発注伝票から入荷伝票を作成し、通常通り伝票登録ができる事を確認した。

◆M_InOutテーブル情報

  • レコード件数(Count関数使用):10,025,884
  • テーブルサイズ(統計情報参照):3,656MB
  • インデックスサイズ(統計情報参照):4,391MB

◆M_InOutLineテーブル情報

  • レコード件数(Count関数使用):100,318,080
  • テーブルサイズ(統計情報参照):21GB
  • インデックスサイズ(統計情報参照):18GB

 

発注照合伝票 - 合計391万伝票

◆M_MatchPOテーブル情報

  • レコード件数(Conut関数使用):3,916,109
  • テーブルサイズ(統計情報参照):996MB
  • インデックスサイズ(統計情報参照):1748MB

 

売上請求伝票と仕入請求伝票 - 合計1,019万伝票 9,204万明細

1伝票10明細で伝票登録。

売上請求伝票(標準入力:登録専用)ウィンドウで受注伝票をもとに売上請求伝票を作成し、通常通り伝票登録ができる事を確認した。同様に仕入請求伝票(標準入力)でも通常通り、伝票登録ができる事を確認した。

◆C_Invoiceテーブル情報

  • レコード件数(Count関数使用):10,198,514
  • テーブルサイズ(統計情報参照):3,874MB
  • インデックスサイズ(統計情報参照):8,049MB

◆C_InvoiceLineテーブル情報

  • レコード件数(Count関数使用):102,043,765
  • テーブルサイズ(統計情報参照):25GB
  • インデックスサイズ(統計情報参照):20GB

請求照合伝票 - 合計391万伝票

◆M_MatchInvテーブル情報

  • レコード件数(Conut関数使用):3,911,707
  • テーブルサイズ(統計情報参照):938MB
  • インデックスサイズ(統計情報参照):1459MB

 

債権債務管理

入金伝票と支払伝票 - 合計953万伝票

ひと月ごとに売上/仕入請求伝票をまとめて支払う想定で入金/支払処理を実行。

入金伝票を、通常通り登録し、消込処理画面で消込処理が行えることを確認した。

◆C_Paymentテーブル情報

  • レコード件数(Count関数使用):9,538,003
  • テーブルサイズ(統計情報参照):3,091MB
  • インデックスサイズ(統計情報参照):4,775MB

 

消込伝票 - 合計932万伝票

ひと月ごとに売上/仕入請求伝票をまとめて支払う想定で入金/支払処理を実行。

◆C_AllocationHdrテーブル情報

  • レコード件数(Count関数使用):9,321,195
  • テーブルサイズ(統計情報参照):2,581MB
  • インデックスサイズ(統計情報参照):3,474MB

◆C_AllocationLineテーブル情報

  • レコード件数(Count関数使用):9,515,440
  • テーブルサイズ(統計情報参照):1,651MB
  • インデックスサイズ(統計情報参照):1,535MB

 

出納帳

◆C_BankStatementテーブル情報

  • レコード件数(Count関数使用):12,767
  • テーブルサイズ(統計情報参照):19MB
  • インデックスサイズ(統計情報参照):42MB

◆C_BankStatementLineテーブル情報

  • レコード件数(Count関数使用):9,413,045
  • テーブルサイズ(統計情報参照):2,300MB
  • インデックスサイズ(統計情報参照):2,240MB

在庫管理

在庫管理台帳テーブル情報

◆M_Transactionテーブル情報

  • レコード件数(Count関数使用):102,279,192
  • テーブルサイズ(統計情報参照):17GB
  • インデックスサイズ(統計情報参照):12GB

◆M_StorageOnHandテーブル情報

  • レコード件数(Count関数使用):1,214,484
  • テーブルサイズ(統計情報参照):2,096MB
  • インデックスサイズ(統計情報参照):3,394MB

◆M_StorageReservationテーブル情報

  • レコード件数(Count関数使用):1,000,115
  • テーブルサイズ(統計情報参照):172MB
  • インデックスサイズ(統計情報参照):384MB

会計

FACT_ACCTテーブル情報 3億8千700万レコード

  • レコード件数(Count関数使用):387,158,067
  • テーブルサイズ(統計情報参照):124GB
  • インデックスサイズ(統計情報参照):92GB

勘定科目レベル残高のキューブの全レコード再作成時間:約8時間

勘定科目レベル残高のキューブの全レコード再作成後に売上請求伝票を1伝票作成し転記した後で、その転記を反映した会計レポートが表示されるまでの時間:約25秒

 

関連するコンテンツ