db(8)
-
ํ์ด์ง๋ค์ด์ ๋ฐฉ๋ฒ๋ก ๋น๊ต(Offset vs Cursor)
ํ์ด์ง๋ค์ด์ ์ด๋? OLTP ํ๊ฒฝ์์ ์ฌ์ฉ์์๊ฒ ๋ฐํ๋๋ ๋ฐ์ดํฐ๋ค์ ๋๋ถ๋ถ ํน์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ๋ ์ผ๋ถ ๋ฐ์ดํฐ์ด๋ค. ์๋ฅผ ๋ค๋ฉด ์น๊ฐ๋ฐ์ ๊ฐ์ฅ ํํ ์์์ธ ๊ฒ์ํ์ด ๊ทธ๋ ๋ค. ๊ฒ์ํ์ ์ผ๋ฐ์ ์ผ๋ก ํ ํ์ด์ง์ ์ฝ 20๊ฐ์ ๊ฒ์๊ธ๋ค์ ์ต์ ์์ผ๋ก ๋ ธ์ถ์ํค๊ณ , ์ฌ์ฉ์๊ฐ ๋ค์ ํ์ด์ง๋ก ๋์ด๊ฐ๊ฒ ๋๋ฉด 21 ~ 40๋ฒ์งธ ๋ฐ์ดํฐ๊ฐ ๊ทธ์ ์์ผ ์กฐํ๋๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ๋๋ค. ์ด ์ํฉ์์ ์๋ฒ๋ ์ฌ์ฉ์์๊ฒ ์ ์ฒด ๊ฒ์๊ธ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๊ฒ์ด ์๋, ์ฌ์ฉ์๊ฐ ์์นํ ํ์ด์ง์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ง์ ๋ฐํํ๋๋ก API ์ค๊ณ๊ฐ ์ด๋ฃจ์ด์ง๋๋ฐ ์ด๋ฅผ ํ์ด์ง๋ค์ด์ ๋ฐฉ๋ฒ๋ก ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ํ์ด์ง๋ค์ด์ ์ข ๋ฅ ์ผ๋ฐ์ ์ผ๋ก ๋ง์ด ์ฌ์ฉ๋๋ ํ์ด์ง๋ค์ด์ ๊ธฐ๋ฒ์๋ Offset ๊ธฐ๋ฐ ํ์ด์ง๋ค์ด์ ๊ณผ Cursor(Keyset) ๊ธฐ๋ฐ ํ์ด์ง๋ค์ด์ ์ด ์กด์ฌํ๋ค. Offset ๊ธฐ..
2024.02.17 -
์๋ธ ์ฟผ๋ฆฌ์ ์ฑ๋ฅ์ ๋ํ ์คํด
๊ฐ์ธ์ ์ธ ๊ฒฝํ ์, ์ทจ์ ์ ์ค๋นํ๋ ๊ฐ๋ฐ์ ์ง๋ง์ ๋ถ๋ค์ด๋ ํน์ ์ ์ ๋ด์ง ์ฃผ๋์ด ๊ฐ๋ฐ์ ๋ถ๋ค ์ฌ์ด์๋ ์๋ธ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ์ ๊ฒ์ ์ฑ๋ฅ์ด ๋๋ผ๋งํฑํ๊ฒ ๋๋น ์ง ๊ฒ์ด๋ผ๋ ํต๋ ์ด ์กด์ฌํ๋ ๊ฒ ๊ฐ๋ค. ๋ ๋ํ ๊ทธ๋ ๊ฒ ์๊ฐํด์์๋๋ฐ ์ด๊ฒ ์ ๋ง ๋ง๋์ง, ์๋๋ฉด ์คํด์ธ ๊ฒ์ธ์ง ํ์ธํด๋ณด๋ คํ๋ค. ์๋ธ ์ฟผ๋ฆฌ๋? ์๋ธ ์ฟผ๋ฆฌ๋ ๋ฉ์ธ ์ฟผ๋ฆฌ๊ฐ ์กด์ฌํ๋ ์ํฉ์์ ๋ฉ์ธ ์ฟผ๋ฆฌ ๋ด์ ํฌํจ๋ ๋ ๋ค๋ฅธ ์ฟผ๋ฆฌ๋ฅผ ์๋ฏธํ๋ค. ์ด๋ค ์ ์ ํฌํจ๋ ์ฟผ๋ฆฌ์ธ์ง์ ๋ฐ๋ผ ์ค์นผ๋ผ ์๋ธ ์ฟผ๋ฆฌ(SELECT ๋ฌธ), ์ธ๋ผ์ธ ๋ทฐ(FROM ์ ), ์๋ธ ์ฟผ๋ฆฌ(WHERE ์ , ๊ทธ๋ฅ ์๋ธ ์ฟผ๋ฆฌ๋ผ๊ณ ํ๋ ๋ฏ...) ๋ฑ์ ๋ช ์นญ์ผ๋ก ๋ถ๋ฆฐ๋ค. ์๋๋ ์๋ธ ์ฟผ๋ฆฌ์ ์์์ด๋ค. -- ์ค์นผ๋ผ ์๋ธ ์ฟผ๋ฆฌ SELECT p.id AS id, (SELECT email FROM accou..
2024.01.21 -
SGA vs PGA (in Oracle)
ํ์ฌ DB ์คํฐ๋์ ์ผํ์ผ๋ก '์น์ ํ SQL ํ๋'์ ํ๋ฒ ๋ ์ฝ๊ณ ์๋ค. ์ด๋ฒ ํํธ๋ ์ํธ ๋จธ์ง ์กฐ์ธ + ํด์ ์กฐ์ธ ์ธ๋ฐ, ๊ฐ์ธ์ ์ผ๋ก ํด๋น ์์ ์ ์ด๋ฏธ 1ํ๋ ํ ์ํฉ์ด๋ผ ๋ ์กฐ์ธ์ด ๋๋ต์ ์ผ๋ก ์ด๋ป๊ฒ ์๋ํ๊ณ , ์ด๋ค ์ํฉ์์ ํ์ฉ๋๋์ง๋ ์ดํดํ๊ณ ์๋ค. ๋ค๋ง 1ํ๋ ์ ์ ๋ชฐ๋ผ์ ๊ทธ๋ฅ ๋์ด๊ฐ๋ ์ค๋ผํด์ PGA์ SGA์ ๊ฐ๋ ์ด ์๋๋ฐ, ์ด๋ฒ ๊ธฐํ์ ์ด๋ฅผ ๊ณต๋ถํ๊ณ ๋์ด๊ฐ๋ฉด ์ข๊ฒ ๋ค ์ถ์ด ๊ณต๋ถํ ๋ด์ฉ๋ค์ ๊ธฐ๋กํด๋๊ธฐ ์ํด ์ด ๊ธ์ ์์ฑํ๋ค. ์ด ๊ธ์์๋ ์ฑ ์์ ๊ฐ๋จํ๊ฒ ๋ค๋ค์ง ๋ฐ์ดํฐ ์กฐํ ์ SGA์ PGA ์ ๊ทผ์ ์๋ ์ฐจ์ด์ ์ค์ ์ ๋๊ณ ๋ค๋ค๋ณด๋ คํ๋ค. ๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ํ ์๊ฐ SGA SGA๋ System Global Area์ ์ฝ์๋ก, DB ๋ด ํ๋๋ง ์กด์ฌํ๋ฉด์ ๋ชจ๋ ์ธ์ ์ด ๊ณต์ ํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด๋ค. SG..
2024.01.14 -
๋ณตํฉ ์ธ๋ฑ์ค ํ์ฉ ๊ฒฝ์ฐ์ ์
๋ค์ํ ๋ฐ์ดํฐ์ ์ ๊ทผ ํํ์ ์ผ์ผ์ด ๋์ํ์ฌ ์ธ๋ฑ์ค๋ฅผ ๋ง์ด ๋ง๋ค ์ ์๋ ํ๊ฒฝ์ด๋ผ๋ฉด ์ธ๋ฑ์ค ์์ฑ์ ์์ด ๊ณ ๋ฏผ์ ์ฌ์ง๊ฐ ์ ๊ฒ ์ง๋ง, ์์ฝ๊ฒ๋ ์ธ๋ฑ์ค๊ฐ ๋ง์์ง๋ฉด ๋ง์์ง์๋ก ๊ทธ์ ๋ฐ๋ฅธ ์ฌ์ด๋ ์ดํํธ(DML ์ฑ๋ฅ ์ ํ, ์ ์ฅ ๊ณต๊ฐ ์ฐจ์ง)๊ฐ ์กด์ฌํ๋ค. ๋ฐ๋ผ์ ์ ์ ์์ ์ธ๋ฑ์ค๋ฅผ ์ ์งํ๋ ๋์์ ๋ค์ํ ๋ฐ์ดํฐ ์ ๊ทผ ํํ์ ๋ํด ์ธ๋ฑ์ค ์ค์บ์ ์ง์ํ๋ ๊ฒ์ ์ค์ํ๋ค. ์ด๋ฅผ ์ํด์๋ ๋ณตํฉ ์ธ๋ฑ์ค ๊ธฐ๋ฐ์ผ๋ก ํ๋์ ์ธ๋ฑ์ค๊ฐ ์ฌ๋ฌ ์ํฉ์ ์ปค๋ฒํ ์ ์๋๋ก ํ ์ด๋ธ ์ค๊ณ๊ฐ ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค. ํด๋น ๊ธ์์๋ ์ด๋ฅผ ๋๊ธฐ ์ํด ๋ณตํฉ ์ธ๋ฑ์ค๊ฐ ์ด๋ค ๋ฐฉ์์ผ๋ก ์๋ํ๋์ง ์์๋ณด๊ณ , ๋ณตํฉ ์ธ๋ฑ์ค๊ฐ ์๋ํ๋ ๊ฒฝ์ฐ์ ์์ ๋ํด ๋ค๋ค๋ณด๋ ค๊ณ ํ๋ค. ์ด ๊ธ์ Mysql ๊ธฐ์ค์ผ๋ก ์์ฑ๋์๋ค. ๋ณตํฉ ์ธ๋ฑ์ค ์๋ ๋ฐฉ์ ๋ณตํฉ ์ธ๋ฑ์ค๋ ๋ ์ด์์ ์นผ๋ผ์ ํตํด ..
2023.12.31 -
Buffer Pinning ๊ธฐ๋ฒ (in Oracle)
์ผ๋ฐ์ ์ผ๋ก Index Scan์ด๋ผ๊ณ ๋ถ๋ฆฌ์ฐ๋ ๊ธฐ๋ฒ๋ค(Index Range Scan, Index Unique Scan ๋ฑ)์ Single Block IO๋ฅผ ํ์ฉํ๋ค. (ํด๋น ๋ด์ฉ์ ๋ํ ์ดํด๋๊ฐ ๋ถ์กฑํ๋ค๋ฉด ์ด์ ๊ธ ์ฐธ์กฐ -> ํ ์ด๋ธ ์ค์บ ๋ฐฉ์์ ๋ฐ๋ฅธ DB Block IO ์ ๋ต) ๋ค์ ์ค๋ช ํ๊ฒ ์ง๋ง, ์ฝ์ด์ผ ํ ๋ธ๋ก์ด ๋ฒํผ์ ์กด์ฌํ๋ค๊ณ ํด๋ ํด๋น ๋ธ๋ก์ ์ ๊ทผํ๊ธฐ ์ํ ๋ฉ๋ชจ๋ฆฌ ์์ ํฌ์ธํฐ๋ฅผ ํ๋ํ๋ ๊ณผ์ ์ด ํ์ํ๋ค. ๋ฐ๋ผ์ ์ฝ์ด์ผ ํ ์ธ๋ฑ์ค ๋ ์ฝ๋๊ฐ ๋ง์ ๊ฒฝ์ฐ์, ๊ทธ ์ ๋งํผ ๋ ผ๋ฆฌ์ IO๊ฐ ๋ฐ์ํ๋ค๊ณ ๋ณผ ์ ์๊ณ ๋งค๋ฒ ํฌ์ธํฐ๋ฅผ ์๋กญ๊ฒ ํ๋ํ๋ค๊ณ ์๊ฐํ ์ ์๋ค. ๋ง์ฝ ์ธ๋ฑ์ค ๋ฆฌํ ๋ ธ๋์์ ์ฝ์ด๋ธ ํ ์ด๋ธ ROWID๊ฐ ๋๋ถ๋ถ ๋์ผํ ๋ธ๋ก์ ๊ฐ๋ฆฌํค๊ณ ์๋ค๋ฉด? ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ธ๋ฑ์ค ๋ ์ฝ๋ ์ ๋งํผ ํฌ์ธํฐ ํ๋ ๊ณผ์ ..
2023.12.09 -
DB ์ธ๋ฑ์ค ์์ฑ์ ์ฌ์ด๋ ์ดํํธ(with Mysql)
์ค์ ๋ก DB๋ฅผ ๋ค๋ฃจ๊ฒ ๋๋ ์ํฉ์์ ๋น ์ง ์ ์๋ ๊ฒ์ด ๋ฐ๋ก ์ธ๋ฑ์ค์ด๋ค. ์ธ๋ฑ์ค๋ฅผ ํตํ๋ฉด ํน์ ์กฐ๊ฑด์์ ๋ฐ์ดํฐ์ ์กฐํ ์ฑ๋ฅ์ด ๋น์ฝ์ ์ผ๋ก ์ฆ๊ฐํ๋ค๋ ๊ฒ์ ๋๊ตฌ๋ ์๊ณ ์๋ ์ฌ์ค์ด๋ค. ๊ทธ๋ฌ๋ฉด์๋, ์ธ๋ฑ์ค๋ฅผ ๋จ๋ฐํ๋ฉด ์๋๋ค๋ ๊ฒ ๋ํ ๋ค๋ค ์๊ณ ์๋ค. ์ด ๋ ๋ฑ์ฅํ๋ ๋ ผ๋ฆฌ๊ฐ ๋ฐ๋ก ์ธ๋ฑ์ค๊ฐ ์ฐจ์งํ๋ ๊ณต๊ฐ์ ๋น์ฉ๊ณผ ๋ฐ์ดํฐ ์ฝ์ ์ ์ถ๊ฐ์ ์ผ๋ก ๋ฐ์ํ๋ ์๊ฐ์ ๋น์ฉ์ ๋ํ ๋น์ค์ ๋ฌด์ํ ์ ์๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ ์ด๋ ๊ฒ ๊ฒ๋ง ์ฃผ๊ณ ์ค์ ๋ก ๊ทธ ์ ๋๊ฐ ์ด๋ ์ ๋์ธ์ง ์๋ ค์ฃผ๋ ์๋ฃ๋ ๋ง์ด ์์ด์ ์ด์ ๋ํด ์ค์ ๋ก ํ์ธํด๋ณด๋ ค๊ณ ํ๋ค. ํ ์คํธ ํ๊ฒฝ์ Mysql์ด๊ณ , ์๋ฌด๋ฐ ๋ฆด๋ ์ด์ ์ด ์กด์ฌํ์ง ์๋ ๋ ๋ฆฝ๋ ํ ์ด๋ธ์์ ํ ์คํธ๋ฅผ ์งํํ์๋ค. -- ํ ์ด๋ธ ์์ฑ create table item ( id BIGINT NOT NULL..
2023.11.25