【iDempiere Lab】JPiereのボリュームテストメモ-100万伝票レベル

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

受発注伝票のヘッダー合計で100万伝票、明細で1000万明細を超えているが、基本的な操作は問題なく行えている。

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

 

テスト環境

Windows10 - 64bit ノートPC

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

DB概要

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

DBサイズ:約86GB

ダンプファイルサイズ:約44GB

主なマスタ情報

取引先マスタ - 10万件

◆C_BPartnerテーブル情報

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

品目マスタ - 10万件

◆M_Productテーブル情報

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

販売管理と購買管理

受注伝票と発注伝票 - 合計110万伝票

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

受注伝票(標準入力:登録専用)ウィンドウにおいて、通常通り伝票登録できる事を確認した。ツールバーアイコンのズームボタンのレスポンスも2秒前後であり特に問題はないように思われる。

◆C_Orderテーブル情報

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

◆C_OrderLineテーブル情報

  • レコード件数(Count関数使用):11,054,900
  • テーブルサイズ(統計情報参照):3675MB
  • インデックスサイズ(統計情報参照):4278MB
【メモ】
  • 発注-入荷-請求照合フォームの画面が開くのが少し遅くなった気がする…。10秒くらいで開くので我慢できないほどではないが…。

 

出荷納品伝票と入荷伝票 - 合計110万伝票

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

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

◆M_InOutテーブル情報

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

◆M_InOutLineテーブル情報

  • レコード件数(Count関数使用):11,054,784
  • テーブルサイズ(統計情報参照):2539MB
  • インデックスサイズ(統計情報参照):2443MB

売上請求伝票と仕入請求伝票 - 合計126万伝票

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

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

◆C_Invoiceテーブル情報

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

◆C_InvoiceLineテーブル情報

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

債権債務管理

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

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

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

◆C_Paymentテーブル情報

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

消込伝票 - 合計117万伝票

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

◆C_AllocationHdrテーブル情報

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

◆C_AllocationLineテーブル情報

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

出納帳

◆C_BankStatementテーブル情報

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

◆C_BankStatementLineテーブル情報

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

在庫管理

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

◆M_Transactionテーブル情報

  • レコード件数(Count関数使用):11,174,323
  • テーブルサイズ(統計情報参照):1857MB
  • インデックスサイズ(統計情報参照):1370MB

◆M_StorageOnHandテーブル情報

  • レコード件数(Count関数使用):2,511,828
  • テーブルサイズ(統計情報参照):431MB
  • インデックスサイズ(統計情報参照):593MB

◆M_StorageReservationテーブル情報

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

会計

FACT_ACCTテーブル情報

  • レコード件数(Count関数使用):50,463,824
  • テーブルサイズ(統計情報参照):16GB
  • インデックスサイズ(統計情報参照):15GB

会計レポート関係

◆会計レポート表示

キューブ再計算の実行後で、勘定科目レベルの残高だけFACT_Acct_Summaryテーブルに保持ている状態であれば、レポート表示はまったく問題ない。BS残高であってもほんの数秒で表示される。再計算が必要な場合も勘定科目残残高レベルの1会計期間分であれば、それほど時間はかからないのではないかと思われる。

◆キューブ再計算 - 勘定科目残高

勘定科目残高のキューブ再計算プロセス。2012年~2018年の7年(84会計期間)×組織数7。基本的に自動仕訳のみのデータなので、勘定科目レベルの残高にするとレコード件数的には少なくなる。

  • レベル 5526レコードインサート
  • フル再計算の処理時間1659秒(約28分

上記処理後に請求受注の伝票タイプで受注伝票を1枚完成にした後に、キューブ再計算を実行すると(1会計期間で1組織の変更)、キューブ再計算処理は64レコード削除の64レコードインサートで13秒で終了する。※直接会計レポートを表示すると、もっと早く感じる…。メモリにデータが乗っているからかも…。