DBMS

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•„ํ‚คํ…์ฒ˜

JEE-JEEE 2024. 4. 8. 12:05

 

๐Ÿชก ์•„๊ธฐํ…์ฒ˜ ๊ฐœ๊ด€

 

โœจ๋ชจ๋ธ๋ง์˜ ์ •์˜

DBMS๋งˆ๋‹ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์ •์˜๊ฐ€ ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅด๋‹ค.

์˜ค๋ผํด์€ ๋””์Šคํฌ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ (Datafile, Redo Log FIle, Control File ๋“ฑ) ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ผ๊ณ  ์ง€์นญํ•˜๊ณ , SGC(System Global Area) ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ๊ณผ ์ด๋ฅผ ์—‘์„ธ์Šคํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์ง‘ํ•ฉ์„ ํ•ฉ์ณ์„œ ์ธ์Šคํ„ด์Šค(Instance)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋งŒ์„ ์—‘์„ธ์Šคํ•˜๋Š” ํ˜•์‹์ด์ง€๋งŒ, RAC(Real Application Cluster)ํ™˜๊ฒฝ์—์„œ๋Š” ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ, ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—‘์„ธ์Šคํ•  ์ˆ˜๋Š” ์—†๋‹ค.

SQL Server๋Š” ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋‹น ์ตœ๊ณ  32,767๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ •์˜ํ•ด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ amrster, model, msdb, tmepdb ๋“œ์œผ์ด ์‹œ์Šคํ…œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ณ , ์—ฌ๊ธฐ์— ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ถ”๊ฐ€ ์ƒ์„ฑํ•˜๋Š” ๊ตฌ์กฐ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค ๋•Œ๋งˆ๋‹ค ์ฃผ ๋ฐ์ดํ„ฐ ํŒŒ์ผ(mdf)๊ณผ ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ ํŒŒ์ผ(ldf)์ด ํ•˜๋‚˜์”ฉ ์ƒ๊ธฐ๊ณ ,  ์ €์žฅํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์„ ๊ฒฝ์šฐ ๋ณด์กฐ(Non-primary) ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค(ndf)

 

 

 

 

๐Ÿงถ ํ”„๋กœ์„ธ์Šค

 

โœจ ํ”„๋กœ์„ธ์Šค?

SQL Server๋Š” ์“ฐ๋ ˆ๋“œ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜์ด๋ฏ€๋กœ ํ”„๋กœ์„ธ์Šค ๋Œ€์‹ ์— ์“ฐ๋ ˆ๋“œ๋ฅผ ์“ฐ๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•˜๋‹ค. SQL Server ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Oracle Window ๋ฒ„์ „์—์„œ๋„ ์“ฐ๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ํ”„๋กœ์„ธ์Šค์™€ ๊ตฌ๋ถ„ํ•ด๊ฐ€๋ฉฐ ์„ค๋ช…ํ•˜๋ฉด ๋ณต์žกํ•˜๊ธฐ ๋•Œ๋ฌธ์— 'ํ”„๋กœ์„ธ์Šค' ๋กœ ํ†ต์นญํ•ด ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค.

ํ”„๋กœ์„ธ์Šค๋Š” ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค(Server Processes)์™€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค(Background Processes) ์ง‘ํ•ฉ์œผ๋กœ ๋‚˜๋‰˜์–ด์ง„๋‹ค. ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋˜์ง€๋Š” ๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค๋Š” ๋’ค์—์„œ ์ผ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

 

๐Ÿ’ก์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค(Server Processes)

์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๋Š” ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค์™€ ํ†ต์‹ ์„ ํ†ตํ•ด ๊ฐ์ข… ๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๊ณ , SQL Server์—์„œ๋Š” Worker ์“ฐ๋ ˆ๋“œ๊ฐ€ ๊ฐ™์€ ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค.

SQL์„ ํŒŒ์‹ฑํ•˜๊ณ  ํ•„์š”ํ•˜๋ฉด ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์ปค์„œ๋ฅผ ์—ด์–ด SQL์„ ์‹คํ–‰ํ•˜๋ฉฐ ๋ธ”๋ก์„ ์ฝ๊ณ  ์ฝ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•ด์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค๋ฉฐ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด์„œ ์ „์†กํ•˜๋Š” ์ž‘์—…์„ ์ „๋ถ€ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

์Šค์Šค๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๊ฒŒ ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ๊ธฐ๋Šฅ, ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋ฐ์ดํ„ฐ ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ DB ๋ฒ„ํผ ์บ์‹œ๋กœ ๋ธ”๋ก ์ ์žฌ๋ฅผ ํ•˜๊ฑฐ๋‚˜ Dirty ๋ธ”๋ก์„ ๋ฐ€์–ด๋ƒ„์œผ๋กœ Free ๋ธ”๋ก์„ ํ™•๋ณดํ•˜๋Š” ์ผ, ๊ทธ๋ฆฌ๊ณ  Redo ๋กœ๊ทธ ๋ฒ„ํผ๋ฅผ ๋น„์šฐ๋Š” ์ผ ๋“ฑ์€ OS, I/O ์„œ๋ธŒ์‹œ์Šคํ…œ, ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก Call์„ ํ†ตํ•ด ์š”์ฒญํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค์™€ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ์‹์€ ๋ชจ๋‘ ๋‹ค๋ฅด์ง€๋งŒ, ์˜ค๋ผํด์˜ ๊ฒฝ์šฐ๋Š” ์„œ๋ฒ„ ๋ฐฉ์‹๊ณผ ๊ณต์œ  ์„œ๋ฒ„ ๋ฐฉ์‹์ด ์žˆ๋‹ค.

 

๐Ÿˆ‍โฌ›์ „์šฉ ์„œ๋ฒ„(Dedicated Server) ๋ฐฉ์‹

์ฒ˜์Œ ์—ฐ๊ฒฐ์š”์ฒญ์„ ๋ฐ›๋Š” ๋ฆฌ์Šค๋„ˆ๊ฐ€ ํ”„๋กœ์„ธ์Šค(WIndow์—์„œ๋Š” ์“ฐ๋ ˆ๋“œ)๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ด ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹จ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์œ„ํ•ด ์ „์šฉ(Dedicated)์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋Š” ์ ์ด ํŠน์ง•์ด๋‹ค. ์ „์šฉ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์—, SQL์„ ์ˆ˜ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ์—ฐ๊ฒฐ ์š”์ฒญ์„ ๋ฐ˜๋ณตํ•˜๊ฒŒ ๋˜๋ฉด ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค์˜ ์ƒ์„ฑ๊ณผ ํ•ด์ œ๋„ ๋ฐ˜๋ณต์„ ํ•˜๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์— DBMS์— ํฐ ๋ถ€๋‹ด์„ ์ฃผ๊ณ , ์„ฑ๋Šฅ๋„ ๊ทธ๋งŒํผ ๋–จ์–ด์ง€๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ „์šฉ ์„œ๋ฒ„ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š” OLTP์„ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” Connection Pooling ๊ธฐ๋ฒ•์„ ํ•„์ˆ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•ด์•ผ๋งŒ ํ•œ๋‹ค.

 

๐Ÿฃ๊ณต์œ  ์„œ๋ฒ„(Shared Server) ๋ฐฉ์‹

๊ณต์œ  ์„œ๋ฒ„๋Š” ๊ทธ๋Œ€๋กœ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž ์„ธ์…˜์—์„œ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ์•ž์— ์žˆ๋Š” Connection Pooling ๊ธฐ๋ฒ•์„ ๊ตฌํ˜„ํ•ด๋†“์€ ๊ฒƒ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋„์šฐ๊ณ , ๋ฐ˜๋ณต ์žฌ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๋ณด๋ฉด ์‰ฝ๋‹ค.

- Java๋ฅผ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๊ฐ๊ฐ์˜ Class๋ฅผ ๊ณ„์†ํ•ด์„œ ํ˜ธ์ถœํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ํ˜ธ์ถœ์„ ์œ„ํ•œ Service๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ๊ฒƒ์„ ๊ณ„์†ํ•ด์„œ ํ™œ์šฉํ•ด ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ธ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๋‹ค. ์กฐ๊ธˆ ๋” ๋“ค์–ด๊ฐ€๋ฉด, Disptcher Servlet์„ ์ƒ๊ฐํ•ด๋ณด์ž.

๊ณต์œ  ์„œ๋ฒ„ ๋ฐฉ์‹์œผ๋กœ ์ ‘์†์„ ํ•˜๊ฒŒ ๋˜๋ฉด, ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋Š” ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค์™€ ์ง์ ‘ ํ†ต์‹ ํ•˜์ง€ ์•Š๊ณ  Disptcher ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฑฐ์น˜๊ฒŒ ๋œ๋‹ค. ์‚ฌ์šฉ์ž ๋ช…๋ น์ด Disptcher ์—๊ฒŒ ์ „๋‹ฌ๋˜๋ฉด, ์ด๋ฅผ SGA์— ์žˆ๋Š” ์š”์ฒญ ํ(Request Quese)์— ๋“ฑ๋กํ•œ๋‹ค. ์ดํ›„ ๊ฐ€์žฅ ๋จผ์ € ๊ฐ€์šฉํ•ด์ง„ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์š”์ฒญ ํ์— ์žˆ๋Š” ์‚ฌ์šฉ์ž ๋ช…๋ น์„ ๊บผ๋‚ด ์ฒ˜๋ฆฌํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์‘๋‹ต ํ(Response Queue)์— ๋“ฑ๋กํ•œ๋‹ค. ์‘๋‹ต ํ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋˜ DIspatcher๋Š” ๊ฒฐ๊ณผ ๋ฐœ๊ฒฌ ์‹œ ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.

 

๐Ÿ’ก๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค(Background Processes)

 

 

 

 

๐Ÿน ํŒŒ์ผ ๊ตฌ์กฐ

 

โœจ๋ฐ์ดํ„ฐ ํŒŒ์ผ

Oracle๊ณผ SQL Server ๋ชจ๋‘ ๋ฌผ๋ฆฌ์ ์œผ๋กœ๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ๊ด€๋ฆฌํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๊ณต๊ฐ„์„ ํ• ๋‹น ๋ฐ ๊ด€๋ฆฌํ•˜๋Š” ๋…ผ๋ฆฌ ๊ตฌ์กฐ๋„ ํฌ๊ฒŒ ๋‹ค๋ฅด์ง€ ์•Š์ง€๋งŒ ์•ฝ๊ฐ„์˜ ์ฐจ์ด๊ฐ€ ์กด์žฌํ•œ๋‹ค

 

๐Ÿฃ๋ธ”๋ก(=ํŽ˜์ด์ง€)

๋Œ€๋ถ€๋ถ„์˜ DBMS์—์„œ I/O๋Š” ๋ธ”๋ก ๋‹จ์œ„๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ์ฆ‰,  ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ธ ๋•Œ์˜ ๋…ผ๋ฆฌ์  ๋‹จ์œ„๊ฐ€ ๋ธ”๋ก์ด๋‹ค.

Oracle์—์„œ๋Š” 2kb, 4kb, 8kb, 16kb, 32kb, 64kb์˜ ๋‹ค์–‘ํ•œ ๋ธ”๋ก ํฌ๊ธฐ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, SQL Server์—์„œ๋Š” 8kb ๋‹จ์ผ ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.

๋ธ”๋ก ๋‹จ์œ„๋กœ I/Oํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๊ฒฐ๊ตญ ํ•˜๋‚˜์˜ ๋ ˆ์ฝ”๋“œ์—์„œ ํ•˜๋‚˜์˜ ์นผ๋Ÿผ๋งŒ์„ ์ฝ์œผ๋ ค๊ณ  ํ•  ๋•Œ๋„ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์†ํ•œ ๋ธ”๋ก ์ „์ฒด๋ฅผ ์ฝ๊ฒŒ ๋œ๋‹ค๋Š” ๊ฒƒ์„ ๋งํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— SQL ์„ฑ๋Šฅ์„ ์ขŒ์šฐํ•˜๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์„ฑ๋Šฅ ์ง€ํ‘œ๋Š” ์—‘์„ธ์Šคํ•˜๋Š” ๋ธ”๋ก์˜ ๊ฐœ์ˆ˜์ด๋ฉฐ, ์˜ตํ‹ฐ๋งˆ์ด์ €์˜ ํŒ๋‹จ์— ๊ฐ€์žฅ ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๊ฒƒ ๋˜ํ•œ ์—‘์„ธ์Šค๋ฅผ ์œ„ํ•œ ๋ธ”๋ก ๊ฐœ์ˆ˜๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

๐Ÿค์ต์Šคํ…ํŠธ(Extent)

ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค๋กœ๋ถ€ํ„ฐ ๊ณต๊ฐ„์„ ํ• ๋‹นํ•˜๋Š” ๋‹จ์œ„๋ฅผ ๋งํ•œ๋‹ค.

ํ…Œ์ด๋ธ”์ด๋‚˜ ์ธ๋ฑ์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๋‹ค ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•ด์งˆ ๊ฒฝ์šฐ, ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์†ํ•œ ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค(๋ฌผ๋ฆฌ์ ์œผ๋กœ๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ผ)๋กœ ๋ถ€ํ„ฐ ์ถ”๊ฐ€ ๊ณต๊ฐ„ ํ• ๋‹น์„ ๋ฐ›๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋•Œ ์ •ํ•ด์ง„ ์ต์Šคํ…ํŠธ ํฌ๊ธฐ์˜ ์—ฐ์† ๋ธ”๋ก ํ• ๋‹น์„ ๋ฐ›๋Š”๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ, ๋ธ”๋ก ํฌ๊ธฐ๊ฐ€ 8kb์ธ ์ƒํƒœ์—์„œ 64kb ๋‹จ์œ„๋กœ ์ต์Šคํ…ํŠธ๋ฅผ ํ• ๋‹นํ•˜๋„๋ก ์ •์˜ํ–ˆ๋‹ค๋ฉด, ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•  ๋•Œ๋งˆ๋‹ค ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค๋กœ๋ถ€ํ„ฐ 8๊ฐœ์˜ ์—ฐ์†๋œ ๋ธ”๋ก์„ ์ฐพ์•„ (๋งŒ์•ฝ, ์ฐพ์ง€ ๋ชปํ•˜๋ฉด ์ƒˆ๋กœ ์ƒ์„ฑํ•œ๋‹ค) ์„ธ๊ทธ๋จผํŠธ์— ํ• ๋‹นํ•œ๋‹ค. ์ต์Šคํ…ํŠธ ๋‚ด์˜ ๋ธ”๋ก์€ ๋…ผ๋ฆฌ์ ์œผ๋กœ๋Š” ์ธ์ ‘ํ•˜์ง€๋งŒ, ์ต์Šคํ…ํŠธ๋ผ๋ฆฌ ์„œ๋กœ ์ธ์ ‘ํ•˜์ง„ ์•Š๋Š”๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ, ์–ด๋–ค ์„ธ๊ทธ๋จผํŠธ์— 2๊ฐœ์˜ ์ต์Šคํ…ํŠธ๊ฐ€ ํ• ๋‹น๋˜์—ˆ์„ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ํŒŒ์ผ ๋‚ด์—์„œ๋Š” ์„œ๋กœ ๋จผ ๊ฑฐ๋ฆฌ์— ์œ„์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ง์ด๋‹ค.

Oracle์€ ํ•œ ์ต์Šคํ…ํŠธ์— ์†ํ•œ ๋ชจ๋“  ๋ธ”๋ก์„ ๋‹จ์ผ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์‚ฌ์šฉํ•˜์ง€๋งŒ, SQL Server๋Š” 2๊ฐœ ์ด์ƒ์˜ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๋‚˜๋ˆ ์„œ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

 

๐ŸŽ์„ธ๊ทธ๋จผํŠธ

SQL Server์—์„œ๋Š” ์„ธ๊ทธ๋จผํŠธ๋ผ๋Š” ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ, ํž™๊ณผ๊ณผ ์ธ๋ฑ์Šค ๊ตฌ์กฐ์˜ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์—ฌ๊ธฐ์— ์†ํ•œ๋‹ค.

์„ธ๊ทธ๋จผํŠธ๋Š” ํ…Œ์ด๋ธ”, ์ธ๋ฑ์Šค, Undo์ฒ˜๋Ÿผ ์ €์žฅ ๊ณต๊ฐ„์„ ํ•„์š”๋กœ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ค๋ธŒ์ ํŠธ์ด๋‹ค. ์ €์žฅ ๊ณต๊ฐ„์„ ํ•„์š”๋กœ ํ•œ๋‹ค๋Š” ๋“ฏ์€ ๊ฒฐ๊ตญ ํ•œ ๊ฐœ ์ด์ƒ์˜ ์ต์Šคํ…ํŠธ๋ฅผ ์‚ฌ์šฉํ•จ์„ ๋œปํ•œ๋‹ค. ํ…Œ์ด๋ธ”์ด๋‚˜ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ, ๋‚ด๋ถ€์ ์œผ๋กœ ๊ฐ๊ฐ์˜ ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. ์ด์™€ ๊ฐ™์ด ์˜ค๋ธŒ์ ํŠธ๋“ค์€ ์„ธ๊ทธ๋จผํŠธ์™€ 1:1 ๋Œ€์‘ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ํŒŒํ‹ฐ์…˜์€ ์˜ˆ์™ธ์ ์œผ๋กœ 1:m ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค. ์ฆ‰, ํŒŒํ‹ฐ์…˜ ํ…Œ์ด๋ธ”(๋˜๋Š” ์ธ๋ฑ์Šค) ๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋˜๋ฉด, ๋‚ด๋ถ€์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋œ๋‹ค. ํ•œ ์„ธ๊ทธ๋จผํŠธ๋Š” ์ž์‹ ์ด ์†ํ•œ ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค ๋‚ด์˜ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ๊ฑธ์ณ ์ €์žฅ๋  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์„ธ๊ทธ๋จผํŠธ์— ํ• ๋‹น๋œ ์ต์Šคํ…ํŠธ๊ฐ€ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ํฉ์–ด์ ธ์„œ ์ €์žฅ๋˜๋Š” ๊ฒƒ์ด๋ฉฐ, ๊ทธ๋ž˜์•ผ ๋””์Šคํฌ ๊ฒฝํ•ฉ์„ ์ค„์ด๋ฉด์„œ I/O ๋ถ„์‚ฐ ํšจ๊ณผ๋ฅผ ์–ธ์„ ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿˆ‍โฌ›ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค

ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค๋Š” ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋‹ด๋Š” ์ฝ˜ํ…Œ์ด๋„ˆ๋กœ, ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ํŒŒ์ผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

SQL Server์˜ ํŒŒ์ผ ๊ทธ๋ฃน์ด Oracle ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค์— ํ•ด๋‹น๋œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

๋ฐ์ดํ„ฐ๋Š” ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ํŒŒ์ผ๋กœ ์ €์žฅ๋˜์ง€๋งŒ, ์‚ฌ์šฉ์ž๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์ง์ ‘ ์„ ํƒํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ฆ‰, ์‚ฌ์šฉ์ž๋Š” ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์œ„ํ•ด์„œ ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค๋ฅผ ์ง€์ •ํ•  ๋ฟ ์‹ค์ œ ๊ฐ’์„ ์ €์žฅ ๋ฐ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์„ ํƒํ•˜๊ณ  ์ต์Šคํ…ํŠธ๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์€ DBMS์˜ ๋ชซ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ ์„ธ๊ทธ๋จผํŠธ๋Š” ์œ„์—์„œ ์–ธ๊ธ‰ํ•˜์˜€๋“ฏ ์ •ํ™•ํžˆ ํ•œ ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค์—๋งŒ ์†ํ•˜์ง€๋งŒ, ํ•œ ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค์—๋Š” ์—ฌ๋Ÿฌ ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํŠน์ • ์„ธ๊ทธ๋จผํŠธ์— ํ• ๋‹น๋œ ๋ชจ๋“  ์ต์Šคํ…ํŠธ๋Š” ํ•ด๋‹น ์„ธ๊ทธ๋จผํŠธ์™€ ๊ด€๋ จ๋œ ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค ๋‚ด์—์„œ๋งŒ ์ฐพ์•„์ง„๋‹ค. ์ฆ‰, ํ•œ ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค์— ๊ฑธ์ณ์„œ ์ €์žฅ์€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด๋‹ค. 

 

๐Ÿ—‚๏ธ์ž„์‹œ ๋ฐ์ดํ„ฐ ํŒŒ์ผ

์ž„์‹œ(Temporary) ๋ฐ์ดํ„ฐ ํŒŒ์ผ์€ ํŠน๋ณ„ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋˜๋Š”๋ฐ, ๋Œ€๋Ÿ‰์˜ ์ •๋ ฌ ๋˜๋Š” ํ•ด์‹œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋‹ค ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•ด์งˆ ๊ฒฝ์šฐ ์ค‘๊ฐ„์˜ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค. ๋ง ๊ทธ๋Œ€๋กœ ์ž„์‹œ๋กœ ์ €์žฅ๋˜์—ˆ๋‹ค๊ฐ€ ์ž๋™์œผ๋กœ ์‚ญ์ œ๋˜๊ธฐ ๋•Œ๋ฌธ์— Redo ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋กœ ๋‚˜์ค‘์— ํŒŒ์ผ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ๋ณต๊ตฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์ฆ‰ ๋ฐฑ์—… ๋˜ํ•œ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. 

Oracle์—์„œ๋Š” ์ž„์‹œ ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์ƒ์„ฑ ํ›„, ์‚ฌ์šฉ์ž๋งˆ๋‹ค ๋ณ„๋„์˜ ์ž„์‹œ ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค๋ฅผ ์ง€์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

SQL Server์—์„œ๋Š” ๋‹จ ํ•˜๋‚˜์˜ tempdb ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ „์—ญ ๋ฆฌ์†Œ์Šค๋กœ ์‹œ์Šคํ…œ์— ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ์‚ฌ์šฉ์ž ์ž„์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.

 

๐Ÿ‰๋กœ๊ทธ ํŒŒ์ผ

DB ๋ฒ„ํผ ์บ์‹œ์— ๊ฐ€ํ•ด์ง€๋Š” ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ์ด ํŒŒ์ผ์„ Oracle์—์„œ๋Š” 'Redo ๋กœ๊ทธ' ๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, SQL Server์—์„œ๋Š” 'ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ' ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

๋ณ€๊ฒฝ๋œ ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ๋ธ”๋ก์„ ๋””์Šคํฌ ์ƒ์˜ ๋ฐ์ดํ„ฐ ๋ธ”๋ก์— ๊ธฐ๋กํ•˜๋Š” ์ž‘์—…์€ Random I/O๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋А๋ฆฌ๋‹ค. ๋ฐ˜๋ฉด, ๋กœ๊ทธ ๊ธฐ๋ก์€ Append ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋Œ€์ ์œผ๋กœ ๊ทธ ์†๋„๊ฐ€ ๊ต‰์žฅํžˆ ๋น ๋ฅด๋‹ค. ๋”ฐ๋ผ์„œ, ๋Œ€๋ถ€๋ถ„์˜ DBMS์—์„œ๋Š” ๋ฒ„ํผ ๋ธ”๋ก์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์ผ์ผํžˆ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ๊ธฐ๋กํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ์šฐ์„  ๋กœ๊ทธ ํŒŒ์ผ์— Append ๋ฐฉ์‹์œผ๋กœ ๋น ๋ฅด๊ฒŒ ๊ธฐ๋กํ•˜๋Š” ๋ฐฉ์‹์„ ์ฑ„ํƒํ•œ๋‹ค. ํ›„์— ๋ฒ„ํผ ๋ธ”๋ก๊ณผ ๋ฐ์ดํ„ฐ ํŒŒ์ผ ๊ฐ„ ๋™๊ธฐํ™”๋Š” ์ ์ ˆํ•œ ์ˆ˜๋‹จ(DBWR, Checkpoint)์„ ์ด์šฉํ•˜์—ฌ ๋‚˜์ค‘์— ๋ฐฐ์น˜ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์‚ฌ์šฉ์ž ๊ฐฑ์‹  ๋‚ด์šฉ์ด ๋ฉ”๋ชจ๋ฆฌ ์ƒ์˜ ๋ฒ„ํผ ๋ธ”๋ก์—๋งŒ ๊ธฐ๋ก๋œ ์ฑ„๋กœ ์•„์ง ๋””์Šคํฌ์— ์‹ค์งˆ์  ๊ธฐ๋ก์ด ๋˜์ง€ ์•Š์•˜๋”๋ผ๋„ Redo ๋กœ๊ทธ๋ฅผ ๋ฏฟ๊ณ  ๋น ๋ฅด๊ฒŒ ์ปค๋ฐ‹์„ ์™„๋ฃŒํ•œ๋‹ค๋Š” ์˜๋ฏธ์—์„œ ์ด๋ฅผ 'Fast Commit' ๋งค์ปค๋‹ˆ์ฆ˜์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ธ์Šคํ„ด์Šค ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ๋กœ๊ทธ ํŒŒ์ผ์„ ์ด์šฉํ•ด ์–ธ์ œ๋“  ๋ณต๊ตฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์•ˆ์‹ฌํ•˜๊ณ  ์ปค๋ฐ‹์„ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

 

- Online Redo Log

์บ์‹œ์— ์ €์žฅ๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์•„์ง ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ๊ธฐ๋ก๋˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ, ๋‹ค์–‘ํ•œ ์ด์Šˆ๋กœ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋น„์ •์ƒ ์ข…๋ฃŒ๊ฐ€ ๋์„ ๋•Œ์— ์‚ฌ์šฉ์ž๋Š” ๊ทธ๋•Œ๊นŒ์ง€์˜ ์ž‘์—… ๋‚ด์šฉ์„ ๋ชจ๋‘ ์žƒ๊ฒŒ ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ํŠธ๋žœ์žญ์…˜์—์„œ์˜ ๋ฐ์ดํ„ฐ ์œ ์‹ค์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ๋งˆ์ง€๋ง‰ ์ฒดํฌํฌ์ธํŠธ ์ดํ›„๋ถ€ํ„ฐ ์‚ฌ๊ณ  ๋ฐœ์ƒ ์ง์ „๊นŒ์ง€์˜ ์ˆ˜ํ–‰๋œ ํŠธ๋žœ์žญ์…˜์„์„ Redo ๋กœ๊ทธ๋กœ ์žฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ, ์ด๋ฅผ '์บ์‹œ ๋ณต๊ตฌ' ๋ผ๊ณ  ํ•œ๋‹ค. Online Redo ๋กœ๊ทธ๋Š” ์ตœ์†Œ ๋‘ ๊ฐœ ์ด์ƒ์˜ ํŒŒ์ผ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ํ˜„์žฌ์‚ฌ์šฉ ์ค‘์ธ ํŒŒ์ผ์ด ๊ฝ‰ ์ฐจ๋ฉด ๋‹ค์Œ ํŒŒ์ผ๋กœ ๋กœ๊ทธ ์Šค์œ„์นญ์„ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  ํŒŒ์ผ์ด ๊ฝ‰ ์ฐจ๋ฉด ๋‹ค์‹œ ์ฒซ๋ฒˆ์งธ ํŒŒ์ผ๋ถ€ํ„ฐ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๋ผ์šด๋“œ ๋กœ๋นˆ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

- ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ

ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ๋Š” Oracle์˜ Online Redo ๋กœ๊ทธ์™€ ๋Œ€์‘๋˜๋Š” SQL Server์˜ ๋กœ๊ทธ ํŒŒ์ผ์ด๋‹ค. ์ฃผ ๋ฐ์ดํ„ฐ ํŒŒ์ผ, ์ฆ‰ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋งˆ๋‹ค ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ ํŒŒ์ผ์ด ํ•˜๋‚˜์”ฉ ์ƒ์„ฑ๋˜๋ฉฐ, ํ™•์žฅ์ž๋Š” ldf์ด๋‹ค. ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ ํŒŒ์ผ์€ ๋‚ด๋ถ€์ ์œผ๋กœ '๊ฐ€์ƒ ๋กœ๊ทธ ํŒŒ์ผ' ์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๋” ์ž‘์€ ๋‹จ์œ„์˜ ์„ธ๊ทธ๋จผํŠธ๋กœ ๋‚˜๋ˆ„์–ด์ง€๊ณ , ์ด ๊ฐœ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์ง€์ง€ ์•Š๋„๋ก(์กฐ๊ฐํ™” ๋ฐœ์ƒ ๋ฐฉ์ง€) ์˜ต์…˜์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. 

 

- Archived(=Offline) Redo ๋กœ๊ทธ

Archived Redo ๋กœ๊ทธ๋Š” Oracle์—์„œ Online Redo ๋กœ๊ทธ๊ฐ€ ์žฌ์‚ฌ์šฉ๋˜๊ธฐ ์ „, ๋‹ค๋ฅธ ์œ„์น˜๋กœ ๋ฐฑ์—…ํ•ด๋‘” ํŒŒ์ผ์„ ๋งํ•œ๋‹ค. ๋””์Šคํฌ๊ฐ€ ๊นจ์ง€๋Š” ๋“ฑ์˜ ๋ฌผ๋ฆฌ์  ์ €์žฅ ๋งค์ฒด์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต๊ตฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. 

 

 

 

 

๐Ÿ›ž๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ

 

๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋Š” ์‹œ์Šคํ…œ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ๊ณผ ํ”„๋กœ์„ธ์Šค ์ „์šฉ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์œผ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.

 

โœจ์‹œ์Šคํ…œ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ

์‹œ์Šคํ…œ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๋Š” ๊ทธ๋Œ€๋กœ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค(๋˜๋Š” ์Šค๋ ˆ๋“œ)๊ฐ€ ๋™์‹œ์— ์—‘์„ธ์Šค ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์œผ๋กœ, Oracle์—์„œ๋Š” 'System Clobal Area(SGA)', SQL Server ์—์„œ๋Š” 'Memory Pool'์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์บ์‹œ ์˜์—ญ์€ ๋งค์šฐ ๋‹ค์–‘ํ•˜์ง€๋งŒ, ๋ชจ๋“  DBMS๊ฐ€ ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์บ์‹œ ์˜์—ญ์œผ๋กœ๋Š” DB ๋ฒ„ํผ ์บ์‹œ, ๊ณต์œ  ํ’€, ๋กœ๊ทธ ๋ฒ„ํผ๊ฐ€ ์žˆ๋‹ค. ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์€ ๊ทธ ์™ธ์— Large Pool, Java Pool ๋“ฑ์„ ํฌํ•จํ•˜๊ณ , ์‹œ์Šคํ…œ ๊ตฌ์กฐ์™€ ์ œ์–ด ๊ตฌ์กฐ๋ฅผ ์บ์‹ฑํ•˜๋Š” ์˜์—ญ ๋˜ํ•œ ํฌํ•จ๋œ๋‹ค. ์‹œ์Šคํ…œ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์€ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค์— ๊ณต์œ ๋˜๊ธฐ์— ๋‚ด๋ถ€์ ์œผ๋กœ Latch, buffer Lock, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์บ์‹œ Lock/Pin ๊ฐ™์€ ์—‘์„ธ์Šค ์ง๋ ฌํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์‚ฌ์šฉ๋œ๋‹ค

 

๐Ÿ’กํ”„๋กœ์„ธ์Šค ์ „์šฉ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ

Oracle์€ ํ”„๋กœ์„ธ์Šค ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž์‹ ๋งŒ์˜ ์ „์šฉ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋ฅผ 'Process Global Area(PGA)' ๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•˜๊ณ  ์„ธ์…˜๊ณผ ์ปค์„œ์— ๋Œ€ํ•œ ์ƒํƒœ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

์“ฐ๋ ˆ๋“œ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” SQL Server๋Š” ํ”„๋กœ์„ธ์Šค ์ „์šฉ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๊ฐ€์ง€์ง€ ์•Š๋Š”๋‹ค.

 

๐Ÿค DB Buffer Cache

DB ๋ฒ„ํผ ์บ์‹œ๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ ์ฝ์–ด๋“ค์ธ ๋ฐ์ดํ„ฐ ๋ธ”๋ก์„ ๋‹ด๋Š” ์บ์‹œ ์˜์—ญ์ด๋‹ค. ์ธ์Šคํ„ด์Šค์— ์ ‘์†ํ•œ ๋ชจ๋“  ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋Š” ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ†ตํ•ด์„œ DB ๋ฒ„ํผ ์บ์‹œ์˜ ๋ฒ„ํผ ๋ธ”๋ก์„ ๋™์‹œ์— ์—‘์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋‹ค. ์ผ๋ถ€ Direct Path Read ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์ž‘๋™ํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๋ฉด, ๋ชจ๋“  ๋ธ”๋ก ์ฝ๊ธฐ๋Š” ๋ฒ„ํผ ์บ์‹œ๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง„๋‹ค. ์ฆ‰, ์ฝ๊ณ ์ž ํ•˜๋Š” ๋ธ”๋ก์„ ๋จผ์ € ๋ฒ„ํผ ์บ์‹œ์—์„œ ์ฐพ์•„๋ณด๊ณ  ์—†์„ ๋•Œ ๋””์Šคํฌ์—์„œ ์ฝ๋Š” ๊ฒƒ์ด๋‹ค. 

๋””์Šคํฌ์—์„œ ์ฝ์„ ๋•Œ์—๋„ ๋จผ์ € ๋ฒ„ํผ ์บ์‹œ์— ์ ์žฌํ•œ ํ›„์— ์ฝ๋Š”๋‹ค. ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฒ„ํผ ์บ์‹œ์— ์ ์žฌ๋˜์–ด์žˆ๋Š” ๋ธ”๋ก์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง€๋ฉฐ, ๋ณ€๊ฒฝ๋œ ๋ธ”๋ก(Dirty ๋ฒ„ํผ ๋ธ”๋ก)์„ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ๊ธฐ๋กํ•˜๋Š” ์ž‘์—…์€ DBWR ํ”„๋กœ์„ธ์Šค์˜ ๋ชซ์ด๋‹ค. 

๋””์Šคํฌ I/O๋Š” ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—‘์„ธ์Šค ์•”์ด ์›€์ง์ด๋ฉด์„œ ํ—ค๋“œ๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง€๋Š” ๋ฐ˜๋ฉด, ๋ฉ”๋ชจ๋ฆฌ I/O๋Š” ์ „๊ธฐ์  ์‹ ํ˜ธ์— ๋ถˆ๊ณผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋””์Šคํฌ I/O์— ๋น„๊ตํ•  ์ˆ˜ ์—†์„ ์ •๋„๋กœ ๋น ๋ฅด๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์— ํ•„์ˆ˜์  ์š”์†Œ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

ใ€€๐Ÿ€ ๋ฒ„ํผ ๋ธ”๋ก์˜ ์ƒํƒœ 

ใ€€ ใ€€ ๋ชจ๋“  ๋ฒ„ํผ ๋ธ”๋ก์€ ์•„๋ž˜ ์„ธ ๊ฐ€์ง€์˜ ์ƒํƒœ ์ค‘ ํ•˜๋‚˜์— ๋†“์—ฌ์žˆ๋‹ค.

ใ€€ ใ€€ - Free ๋ฒ„ํผ : ์ธ์Šคํ„ด์Šค ๊ธฐ๋™ ํ›„ ์•„์ง ๋ฐ์ดํ„ฐ๊ฐ€ ์ฝํžˆ์ง€ ์•Š์•„ ๋น„์–ด์žˆ๋Š” ์ƒํƒœ๊ฑฐ๋‚˜, ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ฒผ์ง€๋งŒ ๋ฐ์ดํ„ฐ ํŒŒ์ผ๊ณผ ์„œ๋กœ ๋™๊ธฐํ™”๋œ ์ƒํƒœ์ด๊ธฐ์— ์–ธ์ œ๋“ ์ง€ ๋ฎ์–ด ์จ๋„ ๋ฌด๋ฐฉํ•œ ๋ฒ„ํผ ๋ธ”๋ก. ๋ฐ์ดํ„ฐ ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด ๋ธ”๋ก์„ ๋กœ๋”ฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์šฐ์„  Free ๋ฒ„ํผ๋ฅผ ํ™•๋ณดํ•ด์•ผ ํ•œ๋‹ค. Free ์ƒํƒœ์ธ ๋ฒ„ํผ์— ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•˜๋ฉด ๊ทธ ์ˆœ๊ฐ„ Dirty ๋ฒ„ํผ๋กœ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋œ๋‹ค

ใ€€ ใ€€ - Dirty ๋ฒ„ํผ : ๋ฒ„ํผ์— ์บ์‹œ๋œ ์ดํ›„ ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ–ˆ์ง€๋งŒ, ์•„์ง ๋””์Šคํฌ์— ๊ธฐ๋ก๋˜์ง€ ์•Š์•„ ๋ฐ์ดํ„ฐ ํŒŒ์ผ ๋ธ”๋ก๊ณผ ๋™๊ธฐํ™”๊ฐ€ ํ•„์š”ํ•œ ๋ฒ„ํผ ๋ธ”๋ก์„ ๋งํ•œ๋‹ค. ์ด ๋ฒ„ํผ ๋ธ”๋ก๋“ค์ด ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ๋ธ”๋ก์„ ์œ„ํ•ด ์žฌ์‚ฌ์šฉ๋˜๋ ค๋ฉด ๋””์Šคํฌ์— ๋จผ์ € ๊ธฐ๋ก๋˜์–ด์•ผ ํ•˜๋ฉฐ, ๊ธฐ๋ก๋˜๋Š” ์ˆœ๊ฐ„ Free ๋ฒ„ํผ๋กœ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋œ๋‹ค

ใ€€ ใ€€ -  Pinned ๋ฒ„ํผ : ์ฝ๊ธฐ ๋˜๋Š” ์“ฐ๊ธฐ ์ž‘์—…์ด ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ๋ฒ„ํผ ๋ธ”๋ก์„ ๋งํ•œ๋‹ค.

 

ใ€€๐Ÿ›ž LRU ์•Œ๊ณ ๋ฆฌ์ฆ˜

ใ€€ใ€€๋ฒ„ํผ ์บ์‹œ๋Š” ์œ ํ•œํ•œ ์ž์›์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹ฑํ•ด๋‘˜ ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  DBMS๋Š” ์‚ฌ์šฉ๋นˆ๋„๊ฐ€ ๋†’์€ ๋ฐ์ดํ„ฐ ๋ธ”๋ก ์œ„์ฃผ๋กœ ๋ฒ„ํผ ์บ์‹œ๊ฐ€ ๊ตฌ์„ฑ๋˜๋„๋ก LRU(least recently used) ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•œ๋‹ค.  ๋ชจ๋“  ๋ธ”๋ก ํ—ค๋”๋ฅผ LRU ์ฒด์ธ์— ์—ฐ๊ฒฐํ•ด ์‚ฌ์šฉ๋นˆ๋„ ์ˆœ์œผ๋กœ ์œ„์น˜๋ฅผ ์˜ฎ๊ฒจ๊ฐ€๋‹ค๊ฐ€, Free ๋ฒ„ํผ๊ฐ€ ํ•„์š”ํ•ด์งˆ ๋•Œ๋ฉด ์—‘์„ธ์Šค ๋นˆ๋„๊ฐ€ ๋‚ฎ์€ ์ชฝ(LRU end) ๋ฐ์ดํ„ฐ ๋ธ”๋ก๋ถ€ํ„ฐ ๋ฐ€์–ด๋‚ด๋Š” ๋ฐฉ์‹์ด๋‹ค

 

๐ŸŒฎ ๊ณต์œ  ํ’€(Shared Pool)

๊ณต์œ  ํ’€์€ ๋”•์…”๋„ˆ๋ฆฌ ์บ์‹œ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์บ์‹œ๋กœ ๊ตฌ๋ถ„ํ•˜๋ฉฐ, ๋ฒ„ํผ ์บ์‹œ์ฒ˜๋Ÿผ LRU ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•œ๋‹ค. SQL Server์—์„œ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ํ”„๋กœ์‹œ์ € ์บ์‹œ(Procedure Cache)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

- ๋”•์…”๋„ˆ๋ฆฌ ์บ์‹œ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋”•์…”๋„ˆ๋ฆฌ(Dictionary)๋Š” ์—ํ‹ฐ๋ธ”, ์ธ๋ฑ์Šค ๊ฐ™์€ ์˜ค๋ธŒ์ ํŠธ๋Š” ๋ฌผ๋ก  ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค, ๋ฐ์ดํ„ฐ ํŒŒ์ผ, ์„ธ๊ทธ๋จผํŠธ, ์ต์Šคํ…ํŠธ, ์‚ฌ์šฉ์ž, ์ œ์•ฝ์— ๊ด€ํ•œ ๋ฉ”ํƒ€ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ง ๊ทธ๋Œ€๋กœ ๋”•์…”๋„ˆ๋ฆฌ ์ •๋ณด๋ฅผ ์บ์‹ฑํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด๋‹ค. '์ฃผ๋ฌธ' ํ…Œ์ด๋ธ”์„ ์˜ˆ๋กœ ๋“ค๋ฉด, ์ž…๋ ฅํ•œ ์ฃผ๋ฌธ ๋ฐ์ดํ„ฐ๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ์ €์žฅ๋˜์—ˆ๋‹ค๊ฐ€ ๋ฒ„ํผ ์บ์‹œ๋ฅผ ๊ฒฝ์œ ํ•ด ์ฝํžˆ์ง€๋งŒ, ํ…Œ์ด๋ธ” ๋ฉ”ํƒ€ ์ •๋ณด๋Š” ๋”•์…”๋„ˆ๋ฆฌ์— ์ €์žฅ๋๋‹ค๊ฐ€ ๋”•์…”๋„ˆ๋ฆฌ ์บ์‹œ๋ฅผ ๊ฒฝ์œ ํ•ด ์ฝํžŒ๋‹ค.

- ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์บ์‹œ

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์บ์‹œ(Library Cache)๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜ํ–‰ํ•œ SQL๋ฌธ๊ณผ ์‹คํ–‰๊ณ„ํš, ์ €์žฅ ํ”„๋กœ์‹œ์ €๋ฅผ ์ €์žฅํ•ด๋‘๋Š” ์บ์‹œ ์˜์—ญ์ด๋‹ค. 

์‚ฌ์šฉ์ž๊ฐ€ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๊ฒฐ๊ณผ์ง‘ํ•ฉ์„ ์š”๊ตฌํ•˜๋ฉด, ์ด๋ฅผ ์ตœ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ ์ƒ์„ฑํ•œ ์ผ์ข…์˜ ํ”„๋กœ์‹œ์ €์™€ ๊ฐ™๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ์ฟผ๋ฆฌ ๊ตฌ๋ฌธ์„ ๋ถ„์„ํ•ด ๋ฌธ๋ฒ•์˜ ์˜ค๋ฅ˜์™€ ์‹คํ–‰ ๊ถŒํ•œ ๋“ฑ์„ ์ฒดํฌํ•œ ๋’ค, ์ตœ์ ํ™” ๊ณผ์ •์„ ๊ฑฐ์ณ์„œ ์‹คํ–‰ ๊ณ„ํš์„ ๋งŒ๋“ค๊ณ , SQL ์‹คํ–‰ ์—”์ง„์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํฌ๋งทํŒ…ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์ด ๋ฐ˜๋ณต ์ˆ˜ํ–‰๋  ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น ์ž‘์—…์„ ๊ณ„์†ํ•ด์„œ ์žฌ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ ๋น„ํšจ์œจ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด์™€ ๊ฐ™์€ ๊ฒƒ์„ ์ €์žฅํ•˜๋Š” ์บ์‹œ ๊ณต๊ฐ„์„ ๋งŒ๋“ค๊ณ , ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.

 

๐ŸŽ๋กœ๊ทธ ๋ฒ„ํผ(Log Buffer)

๋กœ๊ทธ ์—”ํŠธ๋ฆฌ์˜ ๊ฒฝ์šฐ ๋กœ๊ทธ ํŒŒ์ผ์— ๋ฐ”๋กœ ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋จผ์ € ๋กœ๊ทธ ๋ฒ„ํผ์— ๊ธฐ๋กํ•œ๋‹ค.

์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐ์ดํ„ฐ ๋ธ”๋ก ๋ฒ„ํผ์— ๋ณ€๊ฒฝ์„ ํ•˜๊ธฐ ์ „์—, Redo ๋กœ๊ทธ ๋ฒ„ํผ์— ๋จผ์ € ๊ธฐ๋กํ•ด๋‘๋ฉด ์ฃผ๊ธฐ์ ์œผ๋กœ LGWR ํ”„๋กœ์„ธ์Šค๊ฐ€ Redo ๋กœ๊ทธ ํŒŒ์ผ์— ๊ธฐ๋กํ•œ๋‹ค. ์ด์™€ ๊ฐ™์€ Oracle์˜ Redo ๋กœ๊ทธ, Redo ๋กœ๊ทธ ๋ฒ„ํผ์™€ ๋Œ€๋น„๋˜๋Š” ๊ฐœ๋…์ด SQL Server์˜ ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ, ๋กœ๊ทธ ์บ์‹œ์ด๋‹ค

๋ณ€๊ฒฝ์ด ๊ฐ€ํ•ด์ง„ Dirty ๋ฒ„ํผ๋ฅผ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ๊ธฐ๋กํ•˜๊ธฐ ์ „, ํ•ญ์ƒ ๋กœ๊ทธ ๋ฒ„ํผ๋ฅผ ๋จผ์ € ๋กœ๊ทธ ํŒŒ์ผ์— ๊ธฐ๋กํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ธ๋ฐ, ์ธ์Šคํ„ด์Šค ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ๋กœ๊ทธ ํŒŒ์ผ์— ๊ธฐ๋ก๋œ ๋‚ด์šฉ์„ ์žฌํ˜„ํ•ด ์บ์‹œ ๋ธ”๋ก์„ ๋ณต๊ตฌํ•˜๊ณ  ์ตœ์ข…์ ์œผ๋กœ ์ปค๋ฐ‹๋˜์ง€ ์•Š์€ ํŠธ๋žœ์žญ์…˜์„ ๋กค๋ฐฑํ•˜๋Š” ๊ณผ์ •์—์„œ ๋กœ๊ทธ ํŒŒ์ผ์— ์—†๋Š” ๋ณ€๊ฒฝ ๋‚ด์—ญ์ด ์ด๋ฏธ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ๊ธฐ๋ก๋˜์–ด ์žˆ์œผ๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ตœ์ข… ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์€ ํŠธ๋žœ์žญ์…˜์ด ์ปค๋ฐ‹๋˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.