๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Tunning4

[Oracle] ์กฐ์ธ์˜ ์ข…๋ฅ˜ - Nested,Sorted,Hash Join RDBMS์—์„œ๋Š” ์ •๊ทœํ™”์— ์˜ํ•ด ์—ฐ๊ด€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ…Œ์ด๋ธ”๋กœ ๋‚˜๋ˆ„๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์›ํ•˜๋Š” ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ด๋ฅผ Join์„ ํ†ตํ•ด์„œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Join์ž‘์—…์„ ํ• ๋•Œ๋„ ์˜ตํ‹ฐ๋งˆ์ด์ €๋Š” ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์กฐ์ธ์„ ํ• ์ง€ ์‹คํ–‰๊ณ„ํš์„ ์„ธ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด๋ถ€์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ์กฐ์ธ์„ ํ•˜๋Š”์ง€ ์•„๋ž˜ 3๊ฐ€์ง€ ๋ฐฉ์‹์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Nested Loop Join Sorted Merge Join Hash Join ์‹ค์Šตํ™˜๊ฒฝ OS : Red Hat Enterprise Linux Server release 6.10 DB : Oracle 11.2.0.1 SID : orcl user : jamong ํ…Œ์ด๋ธ” ๊ตฌ์กฐ SYS@orcl> create tab.. 2020. 10. 7.
[Oracle] Index ํƒ์ƒ‰ ๋ฐฉ์‹ - Unique,Range,Full,Fast,Skip Index ์ธ๋ฑ์Šค๋Š” ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๋™์ž‘ ์†๋„๋ฅผ ๋†’ํžˆ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์˜ค๋ธŒ์ ํŠธ์ž…๋‹ˆ๋‹ค. ์ •๋ ฌ๋œ ์ƒํƒœ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด ๋น ๋ฅธ ์†๋„๋กœ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋ฌด์กฐ๊ฑด ์†๋„๊ฐ€ ๋น ๋ฅธ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์˜ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์ธ๋ฑ์Šค์˜ ํƒ์ƒ‰๋ณด๋‹ค๋Š” ํ…Œ์ด๋ธ”์„ ์ „์ฒด ํƒ์ƒ‰ํ•˜๋Š”๊ฒƒ์ด ๋น ๋ฆ…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ฃผ๋กœ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์€๋ฐ ๋ฐ˜ํ™˜๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ ์€ ๊ฒฝ์šฐ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ• ๋•Œ ์˜ตํ‹ฐ๋งˆ์ด์ €๋Š” ๊ฐ€์ • ์ตœ์ ํ™”๋œ ๋ฐฉ๋ฒ•์œผ๋กœ ํƒ์ƒ‰์„ ํ•ฉ๋‹ˆ๋‹ค. ์ธ๋ฑ์Šค์—๋Š” ์•„๋ž˜์˜ ํƒ์ƒ‰ ๋ฐฉ์‹์ด ์žˆ๊ณ  ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Index Unique Scan Index Range Scan Index Full Scan Index Fast Full Scan Index Sk.. 2020. 10. 5.
[Oracle] ์‹คํ–‰๊ณ„ํš ํ™•์ธ ๋ฐฉ๋ฒ• XPLAN, AutoTrace, SQL Trace ์‹คํ–‰๊ณ„ํš ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€๋•Œ๋ฅผ ๋– ์˜ฌ๋ ค๋ด…์‹œ๋‹ค. ๋ฌธ์ œ๋ฅผ ์ฝ๊ณ  ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ํ’€์–ด์•ผ ์ •ํ™•๋„์™€ ํšจ์œจ์„ฑ์„ ์žก์„ ์ˆ˜ ์žˆ์„์ง€ ๊ณ ๋ฏผํ•ฉ๋‹ˆ๋‹ค. ์™„์ „ํƒ์ƒ‰์„ ํ•ด์•ผํ•˜๋Š”์ง€, ์ด๋ถ„ํƒ์œผ๋กœ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋Š”์ง€, ํ˜น์€ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์–ด๋–ค ๊ฒƒ์„ ์„ ํƒํ•ด์•ผํ•˜๋Š”์ง€ ๋“ฑ ์—ฌ๋Ÿฌ ๊ณ ๋ฏผ์„ ํ•˜๊ณ  ์ตœ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰๊ณ„ํš๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๊ณผ์ •๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•ด์•ผ ๋น ๋ฅธ์†๋„๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ณ ๋ คํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ธฐ๊นŒ์ง€์˜ ๊ณผ์ •์„ ์•Œ๋ ค์ค๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ์‹คํ–‰๊ณ„ํš์„ ํ™•์ธํ•˜๋ฉด์„œ SQL ์ฟผ๋ฆฌ๋ฌธ์ด ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋Œ€๋Ÿ‰์œผ๋กœ ๋Š˜์–ด๋‚˜๋ฉด์„œ ํŠนํžˆ ์†๋„๊ฐ€ ์ค‘์š”ํ•œ ์š”์†Œ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ํŠœ๋‹์„ ํ†ตํ•ด์„œ๋„ ์—„์ฒญ๋‚œ ํšจ์œจ์„ ์–ป์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํŠœ๋‹์˜ ๊ธฐ๋ณธ์ธ ์‹ค.. 2020. 10. 4.
[Oracle] ON์ ˆ๊ณผ WHERE์ ˆ ์กฐ๊ฑด ์ฐจ์ด, JOIN ๋Œ€์ƒ ์ฐจ์ด ON์ ˆ๊ณผ WHERE์ ˆ ์ฐจ์ด ์กฐ์ธ๋ฌธ์„ ์‚ฌ์šฉํ• ๋•Œ ON์ ˆ์„ ์ด์šฉํ•ด์„œ ํ•ด๋‹น ์กฐ๊ฑด์œผ๋กœ ํ…Œ์ด๋ธ” ์กฐ์ธ์„ ํ•˜๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ JOIN์„ ํ•˜๊ธฐ ์œ„ํ•ด ON์ ˆ์ด ์•„๋‹Œ WHERE์ ˆ์— ์‚ฌ์šฉํ• ๋•Œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ๋‚ด์šฉ๊ฐ™์ง€๋งŒ ํ™•์‹คํžˆ ๋‘๊ฐ€์ง€ ์ ˆ์˜ ์ฐจ์ด๋Š” ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ON์ ˆ๊ณผ WHERE์ ˆ์˜ ์ฐจ์ด์™€ ์–ด๋–ค ์ƒํ™ฉ์—์„œ ๊ฐ๊ฐ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. SQL๋ฌธ ์ˆœ์„œ ON JOIN ์ ˆ์ด ์ถ”๊ฐ€๋œ SQL๋ฌธ์˜ ์ˆœ์„œ๋Š” FROM ์ ˆ ๋‹ค์Œ์œผ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ ON์ ˆ์€ WHERE์ ˆ ๋ณด๋‹ค ์ˆœ์„œ์ƒ์œผ๋กœ ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์ด๊ฒŒ ์‹ค์ œ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. WHERE์ ˆ ON์ ˆ ์‹ค์Šต OS : Red Hat Enterprise Linux Server release 6.3 DB : Oracle 12.1.0.2 u.. 2020. 8. 9.