Shared Pool
Library Cache : parsing๋ ์ ๋ณด๋ฅผ ์ ์ฅ
Data Dictionary Cache : Data Dictionary์ ์ ๋ณด๋ฅผ ์ ์ฅ --> Hard Parse ์์ ์ ๋นจ๋ฆฌ ํด์ฃผ๊ธฐ ์ํด
Result Cache : ์คํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅ (11g new feature) --> ๊ฒฐ๊ณผ๋ก ์ ์ ๋ด์ฉ์ ๋ฐํํด์ฃผ๋ ๊ฐ์ ์ ์ฅํด๋๋ฉด ๋ฐ๋ก ์ฝ์ ์ ์๋ค.
Shared Pool์ Libray Cache, Data Dictionary Cache, Server Result Cache 3๊ฐ์ง ๊ตฌ์ฑ์์๋ฅผ ๊ฐ๊ณ ์์ต๋๋ค. ๋์ผํ ๋ฌธ์ฅ์ด ๋ฐ๋ณต์ ์ผ๋ก ๋ค์ด์์ ๋ Parse ์์ ์ ํ์ง ์๊ณ ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋๋ก ๊ณต์ ์ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๊ณ ์์ต๋๋ค. ์ดํด๋ฅผ ๋๊ธฐ ์ํด ์ฐ๋ฆฌ๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ๋ SELECT๋ฌธ ์์ฒญ์ด ๋ค์ด์์๋ Shared Pool์์ ์ด๋ค ์์ ์ด ์ด๋ฃจ์ด์ง๋์ง ์์๋ณด๊ฒ ์ต๋๋ค.
Select Process
SELECT SAL FROM EMP WHERE EMPNO = 7499;
์์ ์ฟผ๋ฆฌ๊ฐ User Process์์ ์์ฒญํ์ฌ Listenser๋ฅผ ํตํด Connection๊น์ง ์๋ฃ๋์๋ค๋ฉด, Server Process๊ฐ ํด๋น SELECT๋ฌธ์ ์ฒ๋ฆฌํฉ๋๋ค. ๊ฒฐ๊ณผ๊น์ง ๋ฐํํ๊ธฐ ๊น์ง Parse - Execute - Fetch ๋จ๊ณ๋ฅผ ๊ฑฐ์นฉ๋๋ค. Shared Pool์ Parse ๋จ๊ณ์์ ์ฌ์ฉ๋ฉ๋๋ค.
Parse
Parse ๋จ๊ณ๋ Compileํ๋ ๋จ๊ณ๋ผ๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ค์ด์จ Query๋ฌธ์ ๋ํด์ ๋ช๊ฐ์ง ํ์ธ์ ํ๊ณ ์คํํ ์ ์๋ ์ค๋น๋ฅผ ํ๋ ๋จ๊ณ์ ๋๋ค.
์ฐ์ Query์ ๋ฌธ๋ฒ์ ์ด์์ด ์๋ ํ์ธํด์ผํฉ๋๋ค.
๋ค์์ Semantic Check ์์ ์ ํฉ๋๋ค. Query๋ฌธ ๋ด์ ํ ์ด๋ธ๊ณผ ์ปฌ๋ผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์กด์ฌํ๋์ง, ํ ์ด๋ธ์ ์ฝ์ ์ ์๋ ๊ถํ์ ์๋์ง, ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํฉ๋๋ค.
Query ๋ฌธ๋ฒ์๋ ์ด์์ด ์๊ณ , ๊ฐ์ฒด์ ์ ํจ์ฑ์ด๋ ๊ถํ์๋ ๋ฌธ์ ๊ฐ ์๋ค๋ฉด ๋ค์ ๋จ๊ณ๋ ์คํ๊ณํ์ ์ ์ ํ๋ ์์ ์ ๋๋ค. Full Scan์ ํตํด์ ๊ฒ์ํ ๊ฑด์ง, Index๋ฅผ ์ด์ฉํ ๊ฒ์์ ํ ๊ฑด์ง ์ฌ๋ฌ ์์๋ค์ COST๋ก ์ฐ์ ํ์ฌ ๊ฐ์ฅ ๋ฎ์ COST๋ฅผ ๊ฐ๋ ์คํ๊ณํ์ ์ ์ ํฉ๋๋ค.
์คํ ๊ณํ๊น์ง ์ฐ์ ์ด ์๋ฃ๋๋ฉด ๋ค์ด์จ SQL๋ฌธ, ์ ์ ๋ ์คํ ๊ณํ ๊ทธ๋ฆฌ๊ณ P-Code๋ผ๋ ๊ฒ์ Shared SQL Area ๊ณต์ SQL ์์ญ์ ์ฌ๋ฆฝ๋๋ค. ๊ณต์ SQL ์์ญ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๋ฉด Parse ์์ ์ ๋์ ๋๋ค. ๊ทธ๋ฐ๋ฐ ์๊ฐํด๋ณด๋ฉด, ์ด Parsing ์์ ์ด ๋งค๋ฒ Query๊ฐ ๋ค์ด์์ ๋ ํด์ค์ผํ ๊น์? ๊ทธ๋ ๋ค๋ฉด ๊ณต์ ์ ์๋ฏธ๊ฐ ์๊ฒ ์ฃ ? ๊ทธ๋์ ์ฌ์ค์ Parse ์์ ์ ํ ๋ Shared Pool์ ๋ค๋ ค์ ํ์ธ์์ ์ ํด์ค๋๋ค.
Shared Pool Select Process
Shared Pool์ด ์ค๊ฐ์ ๊ฑฐ์น๋ Select Process์ ๋๋ค.
Parse ๋จ๊ณ๋ฅผ ๊ฑฐ์น๊ธฐ ์ ์ Shared Pool์ ํ๋ฒ ๋ค๋ฆฝ๋๋ค. ๋ค์ด์จ Query์ ๋ํด์ Shared Pool ๊ณต์ SQL ์์ญ์ ๋ค์ด์จ ๋ด์ญ์ด ์๋์ง ํ์ธํ๊ณ ์กด์ฌํ๋ค๋ฉด Parse ์์ ์ ๊ฑด๋ ๋ฐ๊ณ ๋ฐ๋ก Execute๋ก ๋์ด๊ฐ๊ณ ์๋ค๋ฉด Parse ์์ ์ ์งํํฉ๋๋ค. ์ด ๋๊ฐ์ง ์ํฉ์ ๋ํด์ Hard Parse, Soft Parse๋ผ๊ณ ์ ์ํฉ๋๋ค.
Hard Parse : Parse ์์ ์ ํจ
Soft Parse : Parse ์์ ์ ๊ฑด๋๋ฐ๊ณ Execute๋ก ๋์ด๊ฐ
Library Cache ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
๊ณ์ ์ฌ์ฉํ๋ค ๋ณด๋ฉด ์ธ์ ๊ฐ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ๊ฒ๋ฉ๋๋ค. ๊ทธ๋ผ ๊ณต์ SQL ์์ญ์ด ๋ค์ด์๋ Library Cache๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ํ ๊น์? ์๋ก์ด ๋ฐ์ดํฐ๊ฐ ๋ค์ด์์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ถ์กฑํ๋ฉด LRU(Least Recently Used) ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํฉ๋๋ค. ๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉ๋์ง ์์ ๋ฐ์ดํฐ๋ถํฐ ์ญ์ ํ์ฌ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฝ๋๋ค.
Shared Pool ๋ฉ๋ชจ๋ฆฌ ํ์ธ
1
|
show parameter shared_pool_size
|
๊ฒฐ๊ณผ๋ก 0์ด ๋์ค๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ด๋ด๋๋ ์๋ ๋ช ๋ น์ด๋ก ์ฉ๋์ ํ์ธํฉ๋๋ค.
1
|
show parameter sga_target
|
10g์ new feature๋ก ์๋ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ํ ์ ์์ต๋๋ค.
ASMM(Automatic Shared Memory Management) ๋์ ์ผ๋ก SGA ๊ตฌ์ฑ์์ ๋ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค.
Database Buffer Cache Execute ์ฐธ์กฐ ๊ธ
๋๊ธ