λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
λ°μ΄ν„°λ² μ΄μŠ€/MSSQL

(MSSQL) λ“€μ–΄μ˜€λŠ” μš”μ²­μ— λ§€κ°œλ³€μˆ˜κ°€ λ„ˆλ¬΄ λ§ŽμŠ΅λ‹ˆλ‹€. μ„œλ²„μ—μ„œ μ§€μ›ν•˜λŠ” μ΅œλŒ€ 맀개 λ³€μˆ˜ κ°œμˆ˜λŠ” 2100κ°œμž…λ‹ˆλ‹€.

by gomdeng 2024. 11. 25.

🐢 μ—λŸ¬

λ“€μ–΄μ˜€λŠ” μš”μ²­μ— λ§€κ°œλ³€μˆ˜κ°€ λ„ˆλ¬΄ λ§ŽμŠ΅λ‹ˆλ‹€. μ„œλ²„μ—μ„œ μ§€μ›ν•˜λŠ” μ΅œλŒ€ 맀개 λ³€μˆ˜ κ°œμˆ˜λŠ” 2100κ°œμž…λ‹ˆλ‹€.

🐢 Sample Case

MyBatisμ—μ„œ Bulk Insertλ₯Ό μ΄μš©ν•˜μ—¬ λŒ€λŸ‰ 데이터 μ—…λ‘œλ“œ μ§„ν–‰
60여건 이상뢀터 λ§€κ°œλ³€μˆ˜ μ œν•œ μ—λŸ¬ λ°œμƒ
ex. 15000건 이상 데이터 μ—…λ‘œλ“œ (1ν–‰λ‹Ή 33개 κ°’)

INSERT INTO ${TABLE_NAME}
( COL1, COL2, COL3 .. COL33 )
<foreach collection="list" item="item", separator=",">
( #{col1}, #{col2}, #{col3} .. #{col33} )

 

🐢 λ‚΄μš©

μ €μž₯ ν”„λ‘œμ‹œμ €λ‹Ή λ§€κ°œλ³€μˆ˜ 2100개λ₯Ό μ΄ˆκ³Όν•  수 μ—†μŒ
λ§€κ°œλ³€μˆ˜κ°€ 33개라고 κ°€μ •ν–ˆμ„λ•Œ μ΅œλŒ€ 63건 κΉŒμ§€ κ°€λŠ₯ (2100 / 33 = 63.6)
​
λ‚˜μ˜ κ²½μš°μ—λŠ”, 1ν–‰λ‹Ή λ§€κ°œλ³€μˆ˜κ°€ 33κ°œκ°€ μžˆλŠ” 데이터λ₯Ό INSERT μ‹œ, μœ„μ™€ 같은 μ—λŸ¬κ°€ λ°œμƒν–ˆλ‹€.
Bulk Insert λΌλŠ” κ±Έ μƒκ°ν•˜λ©΄ μ–΄λ–»κ²Œ 60μ—¬κ°œ 밖에 λ„£μ§€ λͺ»ν•˜λŠ”μ§€ 이해λ₯Ό ν•  수 μ—†μ—ˆλŠ”λ°,
MSSQL μžμ²΄κ°€ λ§€κ°œλ³€μˆ˜λ₯Ό 2100개 이상 μ§€μ›ν•˜μ§€ μ•ŠλŠ”λ‹€κ³  ν•œλ‹€.

 

🐢 쑰치

μžλ°” μ„œλΉ„μŠ€ λ‹¨μ—μ„œ 50건씩 μž˜λΌμ„œ ν”„λ‘œμ‹œμ € 호좜
β€» μ„œλΉ„μŠ€ λ³„λ‘œ λ§€κ°œλ³€μˆ˜κ°€ λ‹€λ₯Ό κ²ƒμ΄λ―€λ‘œ κ³„μ‚°ν•΄μ„œ 적용 (λ§Œμ•½μ— λ§€κ°œλ³€μˆ˜κ°€ 10개라면 210κ°œμ”© μž˜λΌλ„ 되겠죠)

 

🐢 참고

 

SQL Server의 μ΅œλŒ€ μš©λŸ‰ 사양 - SQL Server

이 λ¬Έμ„œμ—μ„œλŠ” μΆ”κ°€ 정보와 ν•¨κ»˜ SQL Server ꡬ성 μš”μ†Œμ— μ •μ˜λœ λ‹€μ–‘ν•œ 개체의 μ΅œλŒ€ 크기와 개수λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€.

learn.microsoft.com