[Oracle] PGA ์˜์—ญ

๋ด„ยท2025๋…„ 8์›” 20์ผ
0

์˜ค๋ผํด ๊ด€๋ฆฌ

๋ชฉ๋ก ๋ณด๊ธฐ
18/163

์ด๋ก 1. pga ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์˜ ์—ญํ• ์€?

๐Ÿ’ก ์ •๋ ฌ์ž‘์—…๊ณผ ํ•ด์‰ฌ์กฐ์ธ


์ด๋ก 2. ์ •๋ ฌ์„ ์ผ์œผํ‚ค๋Š” SQL์€?

๐Ÿ’ก
1. ORDER BY
2. SORT MERGE JOIN
3. CREATE INDEX ์ƒ์„ฑ๋ฌธ ์‹คํ–‰์‹œ
4. ๋ฐ์ดํ„ฐ ๋ถ„์„ํ•จ์ˆ˜ ์‚ฌ์šฉ์‹œ


์ด๋ก 3. PGA ์˜์—ญ์„ DBA๊ฐ€ ์•Œ์•„์•ผํ•˜๋Š” ์ด์œ 

๐Ÿ’ก ๊ฐœ๋ฐœ์ž๋“ค์ด ๊ณผ๋„ํ•œ ์ •๋ ฌ์„ ์ผ์œผํ‚ค๋Š” ์•…์„ฑ SQL์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด
PGA ์˜์—ญ์ด ๊ฝ‰์ฐจ๋ฉด์„œ SQL์˜ ์„ฑ๋Šฅ์ด ๋А๋ ค์ง‘๋‹ˆ๋‹ค.


์‹ค์Šต1. PGA ์˜์—ญ์˜ ํ˜„์žฌ ์‚ฌ์ด์ฆˆ๋ฅผ ํ™•์ธํ•˜์‹œ์˜ค

SQL> show parameter pga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_limit                  big integer 2G
pga_aggregate_target                 big integer 625M

์‹ค์Šต2. PGA ์˜์—ญ์˜ ์‚ฌ์ด์ฆˆ๋ฅผ 700M๋กœ ๋Š˜๋ฆฌ์‹œ์˜ค

scope=both
: ํ˜„์žฌ ๋ฉ”๋ชจ๋ฆฌ์—๋„ ๋ฐ˜์˜ํ•˜๋ฉด์„œ
700m๋ฅผ ์ปดํ“จํ„ฐ๋ฅผ ๋„๊ณ  ์˜ฌ๋ฆฌ๋ฉด์„œ๋„ ์ž๋™๋ฐ˜์˜ํ•˜๊ฒ ๋‹ค

SQL> alter system set pga_aggregate_target=700m scope=both;

์‹œ์Šคํ…œ์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

SQL> shutdown immediate
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋‹ซํ˜”์Šต๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋งˆ์šดํŠธ ํ•ด์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
ORACLE ์ธ์Šคํ„ด์Šค๊ฐ€ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
SQL>
SQL> startup
ORACLE ์ธ์Šคํ„ด์Šค๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Total System Global Area 1979709008 bytes
Fixed Size                  8898128 bytes
Variable Size             520093696 bytes
Database Buffers         1426063360 bytes
Redo Buffers               24653824 bytes
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋งˆ์šดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์—ด๋ ธ์Šต๋‹ˆ๋‹ค.
SQL>
SQL> show parameter pga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_limit                  big integer 2G
pga_aggregate_target                 big integer 700M

๐Ÿ’ก ํ•ด์‰ฌ์กฐ์ธ์ด ๋งŽ์ด ์ผ์–ด๋‚˜๊ณ  ๊ณผ๋„ํ•œ ์ •๋ ฌ์ž‘์—…์ด ๋งŽ์ด ์ผ์–ด๋‚˜๋Š” dw๊ฐ™์€ db๋Š” pga ์‚ฌ์ด์ฆˆ๋ฅผ ๋Š˜๋ ค์ค˜์•ผํ•จ


์ด๋ก 4. SGA ์˜์—ญ๊ณผ PGA ์˜์—ญ์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์ž๋™ ์กฐ์ ˆํ•˜๋Š” ๋Œ€ํ‘œ ์˜ค๋ผํด ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”?

๐Ÿ’ก memory_target


์‹ค์Šต3. ํ˜„์žฌ memory_target์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ํ™•์ธํ•˜์‹œ์˜ค

SQL> show parameter memory_target

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
memory_target                        big integer 0
SQL>

๐Ÿ’ก ์œ„์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ 0์œผ๋กœ ๋˜์–ด์žˆ์œผ๋ฉด sga_target๊ณผ pga_aggregate_target์„ ์ง์ ‘ ์ ์šฉํ•ด์„œ ์„ค์ •ํ•ด์ค˜์•ผํ•จ.
๋งŒ์•ฝ memory_target์— ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•ด๋†“์œผ๋ฉด ์˜ค๋ผํด์ด ์•Œ์•„์„œ sga_target๊ณผ pga_aggregate_target์„ ์ž๋™์กฐ์ ˆํ•ฉ๋‹ˆ๋‹ค.

dba๊ฐ€ memory_target ์ด๋ผ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ํ•˜๋‚˜๋งŒ ์„ค์ •ํ•ด ๋†“์œผ๋ฉด ๋‚˜๋จธ์ง€๋Š” ์˜ค๋ผํด์ด ๋‹ค ์•Œ์•„์„œ ํ•ฉ๋‹ˆ๋‹ค.

๋‚ฎ์‹œ๊ฐ„: sga > pga
๋ฐค์‹œ๊ฐ„: sga < pga

memory_target๋ฅผ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ 40~50%๋กœ ์žก์•„์ฃผ๊ธฐ๋ฅผ ๊ถŒ์žฅํ•˜๋‹ˆ๊นŒ ์žก์•„๋†“์œผ๋ฉด ์˜ค๋ผํด์ด ์•Œ์•„์„œ ์ž๋™์กฐ์ ˆํ•ฉ๋‹ˆ๋‹ค.


์‹ค์Šต4. ํ˜„์žฌ pga ์˜์—ญ์˜ ์‚ฌ์šฉ ํ˜„ํ™ฉ์„ ํ™•์ธํ•˜์‹œ์˜ค

ed pga.sql
@pga

col current clear

SELECT b.value "Current", a.value "Max", (a.value - b.value) "Diff"
       FROM V$PGASTAT a, V$PGASTAT b
       WHERE a.name = 'aggregate PGA target parameter' AND b.name = 'total PGA inuse';

์‹ค์Šต5. pga_aggregate_target์„ 800m ๋กœ ๋Š˜๋ฆฌ์‹œ์˜ค

SQL> alter system set pga_aggregate_target=800m scope=both;

์‹œ์Šคํ…œ์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

SQL> shutdown immediate
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋‹ซํ˜”์Šต๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋งˆ์šดํŠธ ํ•ด์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
ORACLE ์ธ์Šคํ„ด์Šค๊ฐ€ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

SQL> startup
ORACLE ์ธ์Šคํ„ด์Šค๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Total System Global Area 1979709008 bytes
Fixed Size                  8898128 bytes
Variable Size             520093696 bytes
Database Buffers         1426063360 bytes
Redo Buffers               24653824 bytes
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋งˆ์šดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์—ด๋ ธ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ. ์•„๋ž˜์˜ ๊ณผ๋„ํ•œ ์ •๋ ฌ์ž‘์—…์„ scott ์œ ์ ธ์—์„œ ์ˆ˜ํ–‰ํ•˜๋ฉด pga ์˜์—ญ์˜ ์‚ฌ์šฉ์œจ์ด ์˜ฌ๋ผ๊ฐ€๋Š”์ง€ ํ™•์ธํ•˜์‹œ์˜ค

SELECT   e1.sal
   from  emp  e1, emp  e2, emp  e3, emp  e4, emp  e5, emp  e6, emp  e7
   order by e3.sal  desc;

ใ„ด sql developer์—์„œ ์œ„์˜ ์ฝ”๋“œ๋ฅผ ๋Œ๋ฆฌ๊ณ 


SQL> @pga
SQL> /


๐Ÿ”Ž ํ€ด์ฆˆ

1. ์„œ๋ฒ„ ๋˜๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค์˜ ๋ฐ์ดํ„ฐ ๋ฐ ์ œ์–ด ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์€?

1) Shared Pool
2) PGA
3) ๋ฒ„ํผ ์บ์‹œ
4) ์œ ์ € ์„ธ์…˜ ๋ฐ์ดํ„ฐ


2. ๋ฐ์ดํ„ฐ ํŒŒ์ผ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒ„ํผ ์บ์‹œ๋กœ ์ฝํ˜€์ง€๋Š” ๊ฒƒ์€?

1) ํ–‰
2) ๋ณ€๊ฒฝ ์‚ฌํ•ญ
3) ๋ธ”๋ก
4) SQL















๋‹ต:
1. 2๋ฒˆ PGA
2. 3๋ฒˆ ๋ธ”๋ก

0๊ฐœ์˜ ๋Œ“๊ธ€