Batch ๋์ ์ค Select ์ฟผ๋ฆฌ ์คํํ๋ฉด์ ๊ฐํ์ ์ผ๋ก Leak์ด ๋๋ค.
-> java.lang.Exception: Apparent connection leak detected
๋ฌธ์ ๊ฐ ๋๋ ์ฟผ๋ฆฌ๋ฅผ ๋ฌธ์ ๊ฐ ๋๋ ์กฐ๊ฑด๊ณผ ๋์ผํ๊ฒ Database Tool๋ก ๋๋ ค๋ณด์๋ค.
์ฟผ๋ฆฌ ์์ฒด๋ ์คํ์ด ๋๋๋ฐ Output์ ๊ฒฝ๊ณ ๊ฐ ๋ฌ๋ค.
-> Memory capacity of 8388608 bytes for 'range_optimizer_max_mem_size' exceeded. Range optimization was not done for this query.
๋ฌธ์ ๋ IN์ ์ ๋๊ธด ํ๋ ๊ฐ์..
IN์ ์ ๊ฐ์๊ฐ ๋๋ฌด ๋ง์ ๊ฒฝ์ฐ, Where ์กฐ๊ฑด ๋ฒ์๊ฐ DB์ ์ ํ๋ ๋ฉ๋ชจ๋ฆฌ 8388608 Bytes๋ฅผ ์ด๊ณผํ๋ค.
์ด๋ฐ ๊ฒฝ์ฐ Index๋ฅผ ํ์ง ์๊ณ Full Scan ๋์ด ๊ฒฐ๊ณผ์ ์ผ๋ก Memory Leak์ด ๋ฐ์ํ๊ฒ ๋๋ค.
ํด๋น ์ฟผ๋ฆฌ๋ค์ IN์ ํ๋ ๊ฐ์๋ฅผ ์กฐ์ ํด๋ณด๋ฉด์ ์คํ ๊ณํ์ ํ์ธํด๋ดค์ ๋, IN์ ์ด ๋ช ๊ฐ๋์ ๋ฐ๋ผ ๋์ผ ์ฟผ๋ฆฌ Explain์ด ๋ค๋ฅด๋ค.
ํด๊ฒฐ์ฑ
์ผ๋ก range_optimizer_max_mem_size๋ฅผ ์กฐ์ ํ๋ผ๊ณ ํ๋๋ฐ.. DB ์ค์ ์ ๋ด๋ง๋๋ก ๋ณ๊ฒฝํ๋ฐ๊ฐ ๋ค๋ฅธ ์ฌ์ด๋ ์ดํ์ด ์ด์ผ ํฐ์ง์ง ๋ชจ๋ฅธ๋ค.
์ผ๋จ in์ ์ ๊ฐ์๋ฅผ ์กฐ์ ํด๋ณด์.. application code level์์ 200๊ฐ๋ก ์ ํํ๋ memory leak์ ์๋๊ณ ์ ๋์ด๊ฐ๋ค