mybatis-spring ์‚ฌ์šฉ์‹œ Executor.BATCH ๋ชจ๋“œ์˜ update์†๋„์™€ ์ผ๋ฐ˜์ ์ธ ํŠธ๋žœ์žญ์…˜์‚ฌ์šฉ์‹œ์˜ ์†๋„๊ฐ€ ํฌ๊ฒŒ ์ฐจ์ด๊ฐ€ ๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๋ฌด์—‡์„ ๋†“์น˜๊ณ  ์žˆ๋Š”๊ฑธ๊นŒ์š”?

13,082 views
Skip to first unread message

Unong Jung

unread,
Apr 29, 2013, 7:33:55โ€ฏAM4/29/13
to ks...@googlegroups.com
์•ˆ๋…•ํ•˜์„ธ์š”ย 
ํ•ญ์ƒ ๋„์›€์„ ๋ฐ›๊ณ  ์žˆ๋Š” ๋ถ€์กฑํ•œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค.ย 

์ตœ๊ทผ์— 3000๋งŒ๊ฑด ๊ฐ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ค๋ผํด์— update ํ˜น์€ insert ํ•ด์•ผ ํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰์ค‘์ž…๋‹ˆ๋‹ค.
spring-batch๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  mybatis๋Š” mybatis-spring์„ ์ด์šฉํ•˜์—ฌ ๋””๋น„์—ฐ๋™์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.ย 
(ํŒ€ ๋‚ด์—์„œ mybatis ๋กœ db์—ฐ๋™ํ•˜๊ณ  ์žˆ์–ด์„œ spring-batch์—์„œ ์ œ๊ณตํ•˜๋Š” jdbcํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉ์น˜ ์•Š๊ณ  mybatis๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ^^;)

3000๋งŒ๊ฑด์— ๋Œ€ํ•ด update ํ˜น์€ insert ์‹œ๋„์‹œ ์ข€ ์ž˜๊ฒŒ ์ž˜๋ผ์„œ ํ•œ๋ฒˆ์— ๋งŒ๊ฑด์ •๋„๋ฅผ ์‹œ๋„ํ• ๋•Œ,

1. ์•„๋ž˜์™€ ๊ฐ™์ด @Transactional ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ํŠธ๋žœ์žญ์…˜์„ ์—ด๊ณ  ํ•œ๋ฒˆ์˜ ํŠธ๋žœ์žญ์…˜ ์•ˆ์—์„œ ๋งŒ๊ฑด์— ๋Œ€ํ•ด ์ผ๋ถ€๋Š” update ์ผ๋ถ€๋Š” insert ๋ฅผ ํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„๊ณผ,
@Transactional

public void insertBatch(List upList) {
ย 
for(item : itemList){
ย  ย  mapper
.insert(item);
ย 
}
}


2. ์•„๋ž˜์™€ ๊ฐ™์ดย session์„ย ๋ฐ›์•„์™€์„œย session์„ย ํ†ตํ•ดย mapper๋ฅผย ๊ฐ€์ ธ์™€ย flushStatementsย ํ•ด์ฃผ๊ณ ย commitย ํ•˜๋Š”ย ๋ฐฉ์‹์œผ๋กœย ์‹œ๋„ํ–ˆ์„๋•Œย ๊ฑธ๋ฆฌ๋Š”ย ์‹œ๊ฐ„์ดย ๋น„์Šท๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

public void insertBatch(List upList) {
ย 
SqlSession sqlSessionTemplate = sqlSessionFactory.openSession(ExecutorType.BATCH);
ย  mapper
= sqlSessionTemplate.getMapper(Mapper.class);
ย 
for(item : itemList){
ย  ย  mapper
.insert(item);
ย 
}
ย 
List<BatchResult> results = sqlSessionTemplate.flushStatements();
ย  sqlSessionTemplate
.commit();
}

๋‘˜๋‹ค ๋งŒ๊ฑด์— ๋Œ€ํ•ด ์•ฝ 10์ดˆ~15์ดˆ ์ •๋„ ๊ฑธ๋ฆฌ๋Š”๋ฐ.. ๋” ๊ฑธ๋ฆด๋•Œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค..ย 

์–ด๋–ค ๋ถ€๋ถ„์„ ์‚ดํŽด๋ด์•ผ ์†๋„๋ฅผ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? ใ… ใ… ย 

์„ ๋ฐฐ๋‹˜๋“ค์˜ ์กฐ์–ธ์„ ๊ผญ ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.ย 




์ „ํ˜•๋ฏผ

unread,
Apr 29, 2013, 9:58:35โ€ฏAM4/29/13
to ks...@googlegroups.com
ํ˜น์‹œ ์•„๋ž˜ ๋ถ€๋ถ„์— insertBatch ๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์ „์— transaction์„ ๊ฑธ์–ด ๋ณด์…จ๋‚˜์š”..??

๋‚ด์šฉ์ธ ์ฆ‰..

๋กœ๊ทธ๋ฅผ ํ™•์ธํ•ด ๋ณด์‹œ๋ฉดย 

insert ํ• ๋•Œ๋งˆ๋‹ค db pool ์—์„œ connection์„ borrow ํ•˜๊ณ  return ์„ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š๋˜๊ฐ€์š”.??

------------------------------------
๋‹น์‹ ์˜ ๊ณผ๊ฑฐ๊ฐ€ ๋‹น์‹ ์„ ๋งŒ๋“ ๋‹ค.


2013๋…„ 4์›” 29์ผ ์˜คํ›„ 8:33, Unong Jung <yos...@gmail.com>๋‹˜์˜ ๋ง:


--
Google ๊ทธ๋ฃน์Šค 'Korea Spring User Group' ๊ทธ๋ฃน์— ๊ฐ€์ž…ํ–ˆ์œผ๋ฏ€๋กœ ๋ณธ ๋ฉ”์ผ์ด ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ด ๊ทธ๋ฃน์—์„œ ํƒˆํ‡ดํ•˜๊ณ  ๋” ์ด์ƒ ์ด๋ฉ”์ผ์„ ๋ฐ›์ง€ ์•Š์œผ๋ ค๋ฉด ksug+uns...@googlegroups.com์— ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์„ธ์š”.
์ด ๊ทธ๋ฃน์— ๊ฒŒ์‹œํ•˜๋ ค๋ฉด ks...@googlegroups.com(์œผ)๋กœ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์„ธ์š”.
http://groups.google.com/group/ksug?hl=ko-KR์—์„œ ๊ทธ๋ฃน์„ ๋ฐฉ๋ฌธํ•˜์„ธ์š”.
๋” ๋งŽ์€ ์˜ต์…˜์„ ๋ณด๋ ค๋ฉด https://groups.google.com/groups/opt_out์„(๋ฅผ) ๋ฐฉ๋ฌธํ•˜์„ธ์š”.
ย 
ย 

์ด์ƒ์šฉ

unread,
Apr 29, 2013, 8:32:52โ€ฏPM4/29/13
to ks...@googlegroups.com
ExecutorType ์€ batch๋กœ ํ•˜์…จ๋Š”์ง€์š”?


2013๋…„ 4์›” 29์ผ ์˜คํ›„ 10:58, ์ „ํ˜•๋ฏผ <supe...@wellsoft.co.kr>๋‹˜์˜ ๋ง:



--

Unong Jung

unread,
Apr 29, 2013, 9:26:25โ€ฏPM4/29/13
to ks...@googlegroups.com, supe...@wellsoft.co.kr

๋กœ๊ทธ๋Š” ibatis, mybatis, springframework.transaction ๋ถ€๋ถ„์— DEBUG ๋ชจ๋“œ๋กœ ๊ฑธ๊ณ  ์ฐ๊ณ  ์žˆ์ง€๋งŒ ํ•ด๋‹น ๋กœ๊ทธ๋Š” ์ฐํžˆ์ง€ ์•Š๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹จ ํ•œ๋ฒˆ connection์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๋กœ๊ทธ์™€ insert sql์„ prepare ํ•˜๋Š” ๋กœ๊ทธ๋งŒ ์ฐํž™๋‹ˆ๋‹ค.

ํŠธ๋žœ์žญ์…˜์„ ์“ฐ์ง€ ์•Š๊ณ  ๋ฐฐ์น˜๋ชจ๋“œ๋กœ ์„ธ์…˜์„ ์—ฌ๋Š” ๋ถ€๋ถ„์— ํŠธ๋žœ์žญ์…˜๋„ ๊ฑธ์–ด๋ณด๊ธฐ๋„ ํ–ˆ์ง€๋งŒ ์ฐจ์ด๋Š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค..ย 


2013๋…„ 4์›” 29์ผ ์›”์š”์ผ ์˜คํ›„ 10์‹œ 58๋ถ„ 35์ดˆ UTC+9, ์ „ํ˜•๋ฏผ ๋‹˜์˜ ๋ง:

Unong Jung

unread,
Apr 29, 2013, 9:28:41โ€ฏPM4/29/13
to ks...@googlegroups.com
๋„ค ๋‘๋ฒˆ์งธ ํƒ€์ž…์˜ ๊ฒฝ์šฐ sessionFactory ์—์„œ executortype.BATCH๋กœ session์„ ์—ฝ๋‹ˆ๋‹ค..
ํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ํŠธ๋žœ์žญ์…˜์„ ์—ด๊ณ  ๋งŒ๊ฑด์„ ์ธ์„œํŠธํ•œ ๋‹ค์Œ ์ปค๋ฐ‹ํ•˜๊ณ  ๋‹ซ๋Š”๊ฑฐ๋ž‘ ์†๋„์ฐจ์ด๊ฐ€ ์—†๋„ค์š”..ย 

2013๋…„ 4์›” 30์ผ ํ™”์š”์ผ ์˜ค์ „ 9์‹œ 32๋ถ„ 52์ดˆ UTC+9, GoodwillDD ๋‹˜์˜ ๋ง:

์ฝ”๋ฐ”(์ด์ˆ˜ํ™)

unread,
May 1, 2013, 8:11:05โ€ฏPM5/1/13
to ks...@googlegroups.com
ํ˜น์‹œ mybatis ์„ค์ • ์ค‘์— ๋ณด๋ฉด ๋ฐ์ดํ„ฐ ์ €์žฅ ํ•˜๋Š” ๋ถ€๋ถ„์ด ๊ธฐ๋ณธ์ ์œผ๋กœ batch๋กœ ์„ค์ • ํ•ด๋‘๋Š” ๋ถ€๋ถ„์ด ์žˆ๋Š”๋ฐ

๊ทธ ๋ถ€๋ถ„ ์„ค์ • ํ•ด๋‘์‹  ์ ์ด ์žˆ๋Š”์ง€ ํ•œ๋ฒˆ ํ™•์ธํ•ด๋ณด์„ธ์š”.ย 
<configuration>
...
<settings>
...
<setting name="defaultExecutorType" value="BATCH" /> <!-- ์ด๋ถ€๋ถ„ ์˜ต์…˜์ด ์กด์žฌํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ BATCH๋ฅผ ํƒ‘๋‹ˆ๋‹ค. -->
....
</settings>
...
</configuration>
2013๋…„ 4์›” 29์ผ ์›”์š”์ผ ์˜คํ›„ 8์‹œ 33๋ถ„ 55์ดˆ UTC+9, Unong Jung ๋‹˜์˜ ๋ง:

Unong Jung

unread,
May 7, 2013, 2:30:56โ€ฏAM5/7/13
to ks...@googlegroups.com
ํ•ด๋‹น ์„ค์ •์€ ์—†์Šต๋‹ˆ๋‹ค ^^;

ํ˜„์žฌ ์ž ์ •์ ์œผ๋กœ ํŠธ๋žœ์žญ์…˜์„ ์—ด๊ณ  ์—ฌ๋Ÿฌ๊ฑด์„ insert ํ•˜๊ณ  ๋‹ซ๋Š”๊ฑฐ๋ž‘..ย 
๋ฐฐ์น˜ํƒ€์ž…์œผ๋กœ ์‹คํ–‰ํ•˜๋Š”๊ฑฐ๋ž‘ ์†๋„์ฐจ์ด๋Š” ํฌ๊ฒŒ ์—†์ง€ ์•Š๋‚˜.. ํ•˜๊ณ  ๊ฒฐ๋ก ์„ ๋‚ด๋ฆฐ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.
๋กค๋ฐฑ์ด๋‚˜.. ์—ฌ๋Ÿฌ๊ฑด insert ํ•œ ํ›„์— ๋™์ž‘๋ฐฉ์‹์˜ ์ฐจ์ด๊ฐ€ ์žˆ์ง€ ์•Š๋‚˜.. ํ•˜๋Š” ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค๋งŒ ์ž์„ธํžˆ๋Š” ๋ชจ๋ฅด๊ฒ ๋„ค์š”..ย 

2013๋…„ 5์›” 2์ผ ๋ชฉ์š”์ผ ์˜ค์ „ 9์‹œ 11๋ถ„ 5์ดˆ UTC+9, ์ฝ”๋ฐ”(์ด์ˆ˜ํ™) ๋‹˜์˜ ๋ง:
Reply all
Reply to author
Forward
0 new messages