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秒で終了する。※直接会計レポートを表示すると、もっと早く感じる…。メモリにデータが乗っているからかも…。