Télécharger
Développer
Compte
Télécharger
Développer
Connexion
Mot de passe oublié ?
Créer un compte
Langue
Aide
Langue
Aide
×
Connexion
Nom du compte
Mot de passe
×
Mot de passe oublié ?
Traduction statut du Français
Catégorie :
Logiciel
Peuple
PersonalForge
Magazine
Wiki
Recherche
OSDN
>
Trouver un logiciel
>
System
>
TERASOLUNA Framework
>
Forums
>
Discussion-Ouverte
>
iBatisを使用したselect文発行について
TERASOLUNA Framework
Description
Résumé du projet
Dashboard - Développeur
Page Web
Développeurs
Galerie d'images
Liste des flux RSS
Activité
Statistiques
Historique
Téléchargements
List of Releases
Stats
Code Source
Liste des dépôts de code
Subversion
Voir le référentiel
Ticket
Liste des tickets
Liste des Jalons
Liste des types
Liste des composants
Liste des tickets/RSS fréquemment utilisés
Soumettre un nouveau ticket
Documents
Wiki
Page de garde
Index du titre
Modifications récentes
Doc Mgr
List Docs
Communication
Forums
Liste des forums
Discussion-Ouverte (1277)
Listes de diffusion
Liste de ML
terasoluna-information
Nouvelles
Forums:
Discussion-Ouverte
(Thread #37135)
Retour à la liste de discussion
RSS
iBatisを使用したselect文発行について (2015-09-15 17:27 by
バッチFW初心者
#76875)
Répondre
Création d'un nouveau ticket
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の作成・発行を行っているため時間がかかってしまっているのかと思われるのですが、このような処理を高速化するための方法をご存じの方がいらっしゃいましたらご教示お願いします。
Répondre à 76875
×
Sujet
Body
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
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.)
Connexion
Nickname
Aperçu
Post
Annuler