์ค๋ผํด์์๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๋ช ๋ น์ด๋ก DELETE, TRUNCATE, DROP ์ด ์์ต๋๋ค. DROP์ ๊ฒฝ์ฐ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๊น์ง ์ ๋ถ์ญ์ ๋ฅผ ํด์ฃผ๊ณ DELETE์ TRUNCATE์ ํ ์ด๋ธ์ ๋จ๊ธฐ๊ณ ๋ฐ์ดํฐ๋ง ์ญ์ ํฉ๋๋ค.
DELETE์ TRUNCATE ์ฐจ์ด
DML๊ณผ DDL
DELETE์ TRUNCATE์ ๊ฐ์ฅ ํฐ ์ฐจ์ด๋ DML๊ณผ DDL์ด๋ผ๋ ๊ฒ์ ๋๋ค. DDL์ ๊ฒฝ์ฐ ํ๋์ ๋ช ๋ น์ด ํธ๋์ญ์ ์ ์์๊ณผ ๋์ด๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ๋ฐ์์ด ๋์ด๋ฒ๋ฆฝ๋๋ค. ๊ทธ๋์ TRUNCATE์ ROLLBACK์ด ๋ถ๊ฐ๋ฅํ ๋ฐ๋ฉด DELETE์ DML ๋ช ๋ น์ด์ด๋ฏ๋ก TRANSACTION ๋จ์๋ก ROLLBACK๊ณผ COMMIT์ด ๊ฐ๋ฅํฉ๋๋ค.
์ ์ฅ๊ณต๊ฐ ๋ฐ๋ฉ๊ณผ ์ ์ง
EMP ํ ์ด๋ธ์์ 192๋ฒ์ฌ์์ ์ฐพ๋๋ค๊ณ ๊ฐ์ ํด๋ด ๋๋ค. SQL ๋ช ๋ น ์์์ ์ํด์ FROM์ ์ด ๊ฐ์ฅ ๋จผ์ ์คํ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ํ ์ด๋ธ์ด ์์นํด์๋ TABLESPACE์ ํด๋น ํ ์ด๋ธ์ BLOCK์ ์ฐพ์๊ฐ๋๋ค. ์ด๋ EMP ํ ์ด๋ธ์ ๋ฐ์ดํฐ ์์ ๋ฐ๋ผ BLOCK์ ์๋ ์ ๋์ ์ผ๋ก ๋ณํ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด 100๊ฐ์ ๋ธ๋ก์ด ์๋ค๊ณ ํ๋ฉด EMPํ ์ด๋ธ ๋ฐ์ดํฐ์ ๋น ๋ธ๋ก์ด ํจ๊ป ๊ณต์กดํ ์ ์๋ค๋ ์๊ธฐ ์ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด EMP ํ ์ด๋ธ์ ๋ฐ์ดํฐ๊ฐ ์ฝ๊ธฐ ์ํด ์ด๋ค ์ฒ๋ฆฌ๊ณผ์ ์ด ์งํ๋ ๊น์?
High Water Mark
ํ ์ด๋ธ SEGMENT์ ์ฒซ๋ฒ์งธ HEADER BLOCK์๋ ํ ์ด๋ธ์ ๋ํ ์ ๋ณด๊ฐ ์์ต๋๋ค. ๊ทธ์ค์์ HIGH WATER MARK๋ผ๋ ์ ๋ณด๊ฐ ์์ต๋๋ค. ์ด๋ ๊ฐ์ ์ต๊ณ ์์๋ฅผ ์ธก์ ํ๋ ๊ฒ๊ณผ ๋น์ทํ ์๋ฆฌ ์ ๋๋ค.
1๋ ์ค ์ต๊ณ ์์๋ ์ต๊ณ ๊ธฐ๋ก์ ๊ฐฑ์ ํ์ง ์๋ํ ๋ณํ์ง ์์ต๋๋ค. ์ด์ ์ต๊ณ ์์๋ณด๋ค ๋์ ์์๋ฅผ ๊ธฐ๋กํ๋ฉด ๊ฐ์ด ๊ฐฑ์ ๋๊ณ ๊ทธ์ ๊น์ง๋ ๊ทธ๋๋ก ์ต๊ณ ๊ธฐ๋ก์ด ๋จ์ต๋๋ค. ๊ทธ๋์ 1๋ ์ค์๋ ์ต๊ณ ์์๊ฐ ๋ฎ์์ง์ง ์๊ณ ๋์์ง๊ธฐ๋ง ํฉ๋๋ค.
ORACLE์ HIGH WATER MARK๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๊ณ์ํด์ ๋ฃ์ผ๋ฉด HIGH WATER MARK๋ ๊ณ์ ๋์์ง๋๋ค.
DELETE : ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํด๋ HIGH WATER MARK๋ ๊ทธ๋๋ก
TRUNCATE : ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ฉด HIGH WATER MARK ํด์
์ฆ, DELETE๋ก 100๋ง๊ฑด์ ์ญ์ ํด์ 1๊ฑด์ ๋ฐ์ดํฐ๋ง ๋จ์๋ ํ ์ด๋ธ์ ์กฐํํ ๋๋ 100๋ง๊ฑด ์ ์ฒด๋ฅผ ์กฐํํ ๋๋ ์๋์ฐจ์ด๊ฐ ์์ต๋๋ค. ๋ฐ๋ฉด, TRUNCATE์ HIGH WATER MARK๋ฅผ ํด์ ํด์ฃผ๊ธฐ ๋๋ฌธ์ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ์ ๋ ์ฐจ์ด๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
๋๊ธ