Download
Entwicklung
Konto
Download
Entwicklung
Anmelden
Vergessen Konto/Passwort
Konto erstellen
Sprache
Hilfe
Sprache
Hilfe
×
Anmelden
Anmeldename
Passwort
×
Vergessen Konto/Passwort
Übersetzungsstatus von Deutsch
Kategorie:
Software
Personen
PersonalForge
Magazine
Wiki
Suche
OSDN
>
Finden Software
>
System
>
TERASOLUNA Framework
>
Foren
>
Offene Diskussion
>
iBatisを使用したselect文発行について
TERASOLUNA Framework
Beschreibung
Projekt Zusammenfassung
Entwickler-Dashboard
Web-Seite
Entwickler
Bildergalerie
RSS Feed-Liste
Aktivität
Statistiken
Historie
Downloads
Aller Releases-Liste
Statistiken
Quellcode
Quellcode-Repositorys-Liste
Subversion
Repository ansehen
Ticket
Ticket-Liste
Liste der Meilensteine
Typenliste
Komponentenliste
Liste der zuletzt benutzten Tickets/RSS
Neue Ticket abschicken
Dokumente
Wiki
Titelseite
Titel-Index
Kürzliche Änderungen
Doc Mgr
List Docs
Kommunikation
Foren
Forum-Liste
Offene Diskussion (1277)
Mailinglisten
Alle Mailinglisten
terasoluna-information
Neuigkeiten
Foren:
Offene Diskussion
(Thread #37135)
Zurück zur Thread-Liste
RSS
iBatisを使用したselect文発行について (2015-09-15 17:27 by
バッチFW初心者
#76875)
Antworten
Ticket erstellen
iBatisを使用した可変パラメータによる、selectの処理速度向上についてご相談させて下さい。
terasoluna batchを使用して以下のようなシステムの構築を行っております。
1.fileChunkCollectorを使用して、会員情報入力ファイルを1件ずつ取得する。
2.blogicにて1で取得した会員情報ファイルの会員IDを元に、会員の過去購入履歴を取得する。
3.過去購入履歴から取得した購入金額を会員IDごとに集計し、会員情報出力ファイルにCSVFileLineWriterを使用して1件ずつ出力を行う。
上記の処理を実装し、動作の確認を行ったところ10Mのファイルの入出力処理に30分以上かかってしまいました。(ファイル件数は200000件ほどです)
どの処理がボトルネックになっているのか確認したところ、上記2の処理でiBatisを使用して会員情報をselectしてくる箇所で時間がかかってしまっていました。
具体的なselect手順以下となっております。
sqlMapにて以下のような定義を行う。
<select id="getNyukinData" parameterClass="java.lang.Integer"
resultClass="jp.terasoluna.batch.sample.uc0003.JB0003nyukinData">
SELECT NYUKIN FROM NYUKINTABLE WHERE ID = #value#
</select>
BLogicにて以下のように取得しています。
NyukinData nyukinData = queryDAO.executeForObject("UC0003.getNyukinData",Integer.valueOf(data.getId()) , JB0003nyukinData.class);
動作の検証を行うために、パラメータ無しで同テーブルに対してselectを発行するようにし処理速度を計測したところ処理時間が10分の1ほどに短縮されました。
使用しているDBはHSQLDBとなります。
想像でしかないのですが、パラメータ有りの場合、毎回SQLの作成・発行を行っているため時間がかかってしまっているのかと思われるのですが、このような処理を高速化するための方法をご存じの方がいらっしゃいましたらご教示お願いします。
Reply to #76875
×
Subjekt
Körper
Reply To Message #76875 > iBatisを使用した可変パラメータによる、selectの処理速度向上についてご相談させて下さい。 > > terasoluna batchを使用して以下のようなシステムの構築を行っております。 > > 1.fileChunkCollectorを使用して、会員情報入力ファイルを1件ずつ取得する。 > 2.blogicにて1で取得した会員情報ファイルの会員IDを元に、会員の過去購入履歴を取得する。 > 3.過去購入履歴から取得した購入金額を会員IDごとに集計し、会員情報出力ファイルにCSVFileLineWriterを使用して1件ずつ出力を行う。 > > 上記の処理を実装し、動作の確認を行ったところ10Mのファイルの入出力処理に30分以上かかってしまいました。(ファイル件数は200000件ほどです) > どの処理がボトルネックになっているのか確認したところ、上記2の処理でiBatisを使用して会員情報をselectしてくる箇所で時間がかかってしまっていました。 > > 具体的なselect手順以下となっております。 > > sqlMapにて以下のような定義を行う。 > <select id="getNyukinData" parameterClass="java.lang.Integer" > resultClass="jp.terasoluna.batch.sample.uc0003.JB0003nyukinData"> > SELECT NYUKIN FROM NYUKINTABLE WHERE ID = #value# > </select> > > BLogicにて以下のように取得しています。 > NyukinData nyukinData = queryDAO.executeForObject("UC0003.getNyukinData",Integer.valueOf(data.getId()) , JB0003nyukinData.class); > > 動作の検証を行うために、パラメータ無しで同テーブルに対してselectを発行するようにし処理速度を計測したところ処理時間が10分の1ほどに短縮されました。 > > 使用しているDBはHSQLDBとなります。 > > 想像でしかないのですが、パラメータ有りの場合、毎回SQLの作成・発行を行っているため時間がかかってしまっているのかと思われるのですが、このような処理を高速化するための方法をご存じの方がいらっしゃいましたらご教示お願いします。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Anmelden
Nickname
Vorschau
Eintrag
Abbrechen