Database/SQL 12

๋‚™๊ด€์  ๋™์‹œ์„ฑ ์ œ์–ด๋ฅผ ์ ์šฉํ•˜๋ฉด์„œ ๋งˆ์ฃผ์นœ ๋ฌธ์ œ: ์žฌ๊ณ ์ˆ˜๋Ÿ‰ ๋น„๊ต

๐Ÿ‘€ ์˜๋ฌธ์ โ“ ์›์ธ ์ถ”๋ก  & ์‹œ๋„1) ์ผ๋‹จ Repeatable Read๋กœ ์‹œ๋‚˜๋ฆฌ์˜ค ์งœ๋ณด๊ณ  ํ…Œ์ŠคํŠธ2) ์ฑ…, ์ž๋ฃŒ ์ฐพ์•„๋ณด๊ธฐ3) ํ—ท๊ฐˆ๋ ธ๋˜ ๋ถ€๋ถ„2๐Ÿ”œ ๋‚˜๊ฐ€๋ฉฐ๋” ์•Œ์•„๋ณผ ๊ฒƒRef ์•„๋ž˜๋Š” ์ œ ์‚ฝ์งˆ ๊ณผ์ •์„ ๊ธฐ๋กํ•œ ๊ธ€์ด๊ณ  ํ‹€๋ฆฐ ๋‚ด์šฉ์ด ํฌํ•จ๋˜์–ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค…! ๐Ÿ‘€ ์˜๋ฌธ์ ๋‚™๊ด€์  ๋™์‹œ์„ฑ ์ œ์–ด๋ฅผ ์ ์šฉํ•˜๋ฉด์„œ ๋งˆ์ฃผ์นœ ๋ฌธ์ œ๋“ค: ํƒ€์ž„์Šคํƒฌํ”„ ์‚ฝ์งˆ๊ฒฐ๋ก ๋ฌธ์ œ ์ •์˜๋ถ„์„&์‹œ๋„์‹œ๋„1) ์•ˆ ๋˜๋Š” ์ด์œ ๋ฅผ ๋‚˜๋ฆ„ ๋ถ„์„ํ•ด๋ด„ ใ…‹..์‹œ๋„2) 3) ์œ„ ๊ธ€์„ ํ†ตํ•ด์ž˜๋ชป๋œ ๊ฐœ๋… ๋ฐ”๋กœ์žก๊ณ ๐Ÿ” ์›์ธโœ… ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ๊ฒฐ๋ก ๋ฌธ์ œ ์ •์˜์ฒ˜์Œ์— ๋™์‹œ์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ•˜์˜€์„ ๋•Œ, ์ฒ˜์Œ์— ๊ฐ€์ •์„ Isolation Level์ด Repeatable Read๋กœ ํ•˜๋ฉด ์•ˆ ๋œ๋‹ค๋Š” ์ž˜๋ชป๋œ ๊ฐœ๋…์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ์–ด์„œ Read Committed๋กœ ๋‚ด๋ ค์•ผ ๋˜๋Š” ์ค„ ์•Œ๊ณ  ์–˜๋ฅผ ์œ„ํ•ด Read Committed..

Database/SQL 2024.02.12

๋น„๊ด€์  ๋™์‹œ์„ฑ ์ œ์–ด๋ฅผ ์ ์šฉํ•  ๊ฒฝ์šฐ ๋ฝ์ด ๊ฑธ๋ฆฐ row๋Š” ์กฐํšŒ๊ฐ€ ์•ˆ ๋˜๋Š” ๊ฑธ๊นŒ?

โœ”๏ธ ๊ฒฐ๋ก ๐Ÿ‘€ ๋ฌธ์ œ ์ •์˜โ“ ๋ถ„์„&์‹œ๋„์‹œ๋„1๐Ÿ”Ž ์›์ธ๐Ÿ”œ ๋‚˜๊ฐ€๋ฉฐ๐Ÿ“– Ref โœ”๏ธ ๊ฒฐ๋ก Repeatable Read๋ฅผ ์‚ฌ์šฉ ์ค‘์ด๋ผ๋ฉด MVCC ๋•๋ถ„์— row์— X-Lock์„ ๊ฑธ์–ด๋„ ๊ฐ€์žฅ ์ตœ๊ทผ ์ปค๋ฐ‹๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์™€์„œ Lock์ด ๊ฑธ๋ฆฐ ๊ฐ™์€ row๋ผ๋„ ์กฐํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๐Ÿ‘€ ๋ฌธ์ œ ์ •์˜์ƒํ™ฉ: ์ฃผ๋ฌธ์žฌ๊ณ ๊ฐ€ ๋งˆ์ด๋„ˆ์Šค๊ฐ€ ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ๋น„๊ด€์  ๋™์‹œ์„ฑ ์ œ์–ด(select for update)๋ฅผ ์ ์šฉํ•จ ๋ฐฅ ๋จน๋‹ค๊ฐ€ ๋ฌธ๋“ ์ƒ๊ฐ๋‚œ ๊ฒŒ ๋น„๊ด€๋ฝ์ด ๋ฝ์„ ๋„ˆ๋ฌด ์˜ค๋ž˜ ์žก๊ณ  ์žˆ์–ด์„œ ๋น„ํšจ์œจ์ ์ด๋ผ๋Š”๋ฐ.. ์–ด๋””๊ฐ€ ๋น„ํšจ์œจ์ ์ด๋ผ๋Š” ๊ฑฐ์ง€? ๋น„๊ด€๋ฝ์œผ๋กœ X-Lock์„ ๊ฑธ์–ด์„œ ์กฐํšŒ๋„ ์•ˆ ๋œ๋‹ค๋Š” ๊ฑด๊ฐ€?์กฐํšŒ์— ๋ฝ์„ ๊ฑธ๊ธดํ•˜์ง€๋งŒ ์žฌ๊ณ ์ˆ˜๋Ÿ‰ ๊ฒ€์ฆ ํ›„์— ๋ฐ”๋กœ update ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์–ด์ฐจํ”ผ X-Lock์ด ๊ฑธ๋ฆฌ๊ณ  ๊ทธ ํ…€์ด ์งง์ง€ ์•Š์•„์„œ ์–ด์ฐจํ”ผ ๋ฝ์„ ๊ฑฐ๋‚˜ ์•ˆ ๊ฑฐ๋‚˜ ์„ฑ๋Šฅ..

Database/SQL 2024.02.12

๋‚™๊ด€์  ๋™์‹œ์„ฑ ์ œ์–ด๋ฅผ ์ ์šฉํ•˜๋ฉด์„œ ๋งˆ์ฃผ์นœ ๋ฌธ์ œ: ํƒ€์ž„์Šคํƒฌํ”„

โœ”๏ธ ๊ฒฐ๋ก ๐Ÿ‘€ ๋ฌธ์ œ ์ •์˜โ“ ๋ถ„์„&์‹œ๋„์‹œ๋„1) ์•ˆ ๋˜๋Š” ์ด์œ ๋ฅผ ๋‚˜๋ฆ„ ๋ถ„์„ํ•ด๋ณด์•˜๋‹ค์‹œ๋„2) 3) ์ž˜๋ชป๋œ ๊ฐœ๋… ๋ฐ”๋กœ์žก์€ ํ›„, ํƒ€์ž„์Šคํƒฌํ”„๋กœ ์•ˆ ๋˜๋Š” ์ด์œ  ๋ถ„์„๐Ÿ” ์›์ธโœ… ํ•ด๊ฒฐ๋ฐฉ๋ฒ• โœ”๏ธ ๊ฒฐ๋ก ๐Ÿ‘€ ๋ฌธ์ œ ์ •์˜์ฒ˜์Œ์— ๋™์‹œ์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ•˜์˜€์„ ๋•Œ, ์ฒ˜์Œ์— ๊ฐ€์ •์„ Isolation Level์ด Repeatable Read๋กœ ํ•˜๋ฉด ์•ˆ ๋œ๋‹ค๋Š” ์ž˜๋ชป๋œ ๊ฐœ๋…์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ์–ด์„œ Read Committed๋กœ ๋‚ด๋ ค์•ผ ๋˜๋Š” ์ค„ ์•Œ๊ณ  ์–˜๋ฅผ ์œ„ํ•ด Read Committed๋กœ ๋‚ด๋ฆฌ๋Š” ๊ฑด ๋ง์ด ์•ˆ ๋˜๋Š” ๊ฒƒ ๊ฐ™์•„ ๋น„๊ด€์  ๋™์‹œ์„ฑ ์ œ์–ด๋กœ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•˜์˜€๋Š”๋ฐ ใ…Ž,,์ž˜๋ชป๋œ ์ง€์‹์œผ๋กœ ์ž˜๋ชป๋œ ํŒ๋‹จ์„ ๋‚ด๋ฆฌ๊ณ  ์žˆ์—ˆ๋‹ค ใ… ใ… ใ…  JPA๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด Version์œผ๋กœ ๊น”๋”ํ•˜๊ฒŒ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋˜๋ฐ, ๋‚˜๋Š” Spring + MyBatis์—ฌ์„œ ์ฟผ๋ฆฌ๋ฌธ์—์„œ CAS(co..

Database/SQL 2024.02.11

์ฃผ๋ฌธ ์‹œ ์žฌ๊ณ ์ˆ˜๋Ÿ‰์ด ๋งˆ์ด๋„ˆ์Šค๊ฐ€ ๋˜๋Š” ๋™์‹œ์„ฑ ๋ฌธ์ œ ํ•ด๊ฒฐํ•˜๊ธฐ

๐Ÿšฉ ๋“ค์–ด๊ฐ€๋ฉฐ๐Ÿ‘€ ๋ฌธ์ œ ์ƒํ™ฉ & ๋ฐœ์ƒ ์›์ธ1. ๋ฌธ์ œ์ƒํ™ฉ2. ๋ฐœ์ƒ์›์ธ๐Ÿ’ช๐Ÿป ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•1. Serializable ์ ์šฉ2. ๋‚™๊ด€์  ๋™์‹œ์„ฑ ์ œ์–ด(Optimistic Concurrency Control)์ •์˜์žฅ์ ๊ณผ ๋‹จ์ ์ ์šฉ๋ฐฉ๋ฒ•์žฌ์‹œ๋„ ์ฒ˜๋ฆฌ3. ๋น„๊ด€์  ๋™์‹œ์„ฑ ์ œ์–ด(Pessimistic Concurrency Control)์ •์˜์žฅ์ ๊ณผ ๋‹จ์ ์ ์šฉ๋ฐฉ๋ฒ•์ปค๋„ฅ์…˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•4. ๋ถ„์‚ฐ ๋ฝโ—์ ์šฉํ•œ ๋ฐฉ๋ฒ•๊ณผ ์„ ํƒ ๊ธฐ์ค€, ํ…Œ์ŠคํŠธ๋‚™๊ด€๋ฝ vs. ๋น„๊ด€๋ฝ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ๊ตฌํ˜„๐Ÿ”œ ๋‚˜๊ฐ€๋ฉฐ๐Ÿ“– Reference ๋™์‹œ์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉฐ ๊ฒช์€ ๋ฌธ์ œ๋“ค๋น„๊ด€์  ๋™์‹œ์„ฑ ์ œ์–ด๋ฅผ ์ ์šฉํ•  ๊ฒฝ์šฐ ๋ฝ์ด ๊ฑธ๋ฆฐ row๋Š” ์กฐํšŒ๊ฐ€ ์•ˆ ๋˜๋Š” ๊ฑธ๊นŒ?๋‚™๊ด€์  ๋™์‹œ์„ฑ ์ œ์–ด๋ฅผ ์ ์šฉํ•˜๋ฉด์„œ ๋งˆ์ฃผ์นœ ๋ฌธ์ œ: ํƒ€์ž„์Šคํƒฌํ”„๋‚™๊ด€์  ๋™์‹œ์„ฑ ์ œ์–ด๋ฅผ ์ ์šฉํ•˜๋ฉด์„œ ๋งˆ์ฃผ์นœ ๋ฌธ์ œ: ์žฌ๊ณ ์ˆ˜๋Ÿ‰ ๋น„๊ตRepeatable Rea..

Database/SQL 2024.02.09

Repeatable Read + ๋น„๊ด€๋ฝ vs. SERIALIZABLE์˜ ์ฐจ์ด์ ์ด ๋ญ˜๊นŒ?

๐Ÿ‘€ ์˜๋ฌธ์ ๋˜ ํ•˜๋‚˜ ๋“  ์˜๋ฌธ์ . ์ฃผ๋ฌธ ์žฌ๊ณ ๊ฐ€ ๋งˆ์ด๋„ˆ์Šค๊ฐ€ ๋˜๋Š” ๋™์‹œ์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋น„๊ด€์  ๋ฝ์„ ์ ์šฉํ•ด ํ•ด๊ฒฐํ•˜์˜€๋‹ค. SELECT FOR UPDATE๋ฅผ ์ ์šฉํ•œ ๋ถ€๋ถ„์€ ์žฌ๊ณ ์ˆ˜๋Ÿ‰์„ ์กฐํšŒํ•ด์˜ค๋Š” ๋ถ€๋ถ„์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์žฌ๊ณ ์ˆ˜๋Ÿ‰์„ ์กฐํšŒํ•˜๋Š” ๋ถ€๋ถ„์€ ํŠธ๋žœ์žญ์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„์— ํ•ด๋‹นํ•œ๋‹ค.์ด ๊ฒฝ์šฐ ํŠธ๋žœ์žญ์…˜์ด ๋๋‚˜์•ผ ๋ฝ์ด ํ’€๋ฆฌ๊ฒŒ ๋ ํ…๋ฐ ๊ทธ๋ ‡๊ฒŒ๋˜๋ฉด ๋ชจ๋“  ๊ฑธ ์ง๋ ฌ๋กœ ์‹คํ–‰ํ•˜๋Š” Serializable๊ณผ ๋ณ„๋ฐ˜ ๋‹ค๋ฅผ ๋ฐ”๊ฐ€ ์—†๋Š” ๊ฒƒ ์•„๋‹Œ๊ฐ€?ํ•˜๋Š” ์˜๋ฌธ์ด ๋“ค์—ˆ๋‹ค. Serializable ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์€ ๋ชจ๋“  ๊ฑธ ์ˆœ์ฐจ์ ์œผ๋กœ, ์ง๋ ฌ๋กœ ์‹คํ–‰ํ•œ๋‹ค๋Š” ๊ฒƒ๋งŒ ์•Œ๊ณ  ์žˆ์—ˆ์ง€ ์ฝ๊ธฐ ์‹œ S-Lock์„ ๊ฑด๋‹ค๋Š” ๊ฑด ์ด๋ฒˆ์— ์กฐ์‚ฌํ•˜๋ฉด์„œ ์ฒ˜์Œ ์•Œ์•˜๋‹ค.์ œ์ผ ํฐ ์ฐจ์ด์ ์€ repeatable read๋Š” ์กฐํšŒ ์‹œ s-lock์„ ์•ˆ ๊ฑธ๊ณ , serializable..

Database/SQL 2024.02.09

SERIALIZABLE์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•˜๋Š” ์ด์œ ๊ฐ€ ๋ญ˜๊นŒ?

๐Ÿ‘€์˜๋ฌธ์ ๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ serializable ๋ฐ๋“œ๋ฝ ์‹œ๋‚˜๋ฆฌ์˜คโ“ ์›์ธ ์ถ”๋ก  & ํ•ด๊ฒฐ์ฑ… ์‹œ๋„โœ”๊ฒฐ๋ก (Serializable์—์„œ ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•˜๋Š” ์ด์œ )๊ต์ฐฉ์ƒํƒœ(Deadlock, ๋ฐ๋“œ๋ฝ)์ด๋ž€?S-Lock๊ณผ X-LockSerializable ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์—์„œ์˜ ๋ฐ๋“œ๋ฝ ๋ฐœ์ƒ ์‹œ๋‚˜๋ฆฌ์˜ค๐Ÿ”œ ๋‚˜๊ฐ€๋ฉฐRef ์•„๋ž˜๋Š” ์ €์˜ ์‚ฝ์งˆ ๊ณผ์ •์ด ์ ํ˜€์ ธ์žˆ์œผ๋‹ˆ ๊ฒฐ๋ก ์ด ๊ถ๊ธˆํ•˜์‹  ๋ถ„๋“ค์€ ์œ„ ๋ชฉ์ฐจ์—์„œ ‘๊ฒฐ๋ก ’์œผ๋กœ ๊ฐ€์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๐Ÿ‘€์˜๋ฌธ์ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด Isolation Level Serializable์„ ์ ์šฉํ•˜๊ณ  ์žฌ๊ณ  499๊ฐœ ์ƒํƒœ์—์„œ 100๊ฐœ์˜ ์“ฐ๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ 5๊ฐœ ์ƒํ’ˆ์— ๋Œ€ํ•œ ์ด 500๊ฐœ์˜ ์ฃผ๋ฌธ์„ ์‹œ๋„๋ฅผ ํ•ด๋ณด๋ ค๊ณ  ํ–ˆ์œผ๋‚˜ ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•˜์˜€๋‹ค.๋‚˜๋Š” Serializable์˜ ๋‹จ์ ์œผ๋กœ ๋ชจ๋“  ๊ฑธ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค๋Š” ๊ฒƒ ๋ง..

Database/SQL 2024.02.09

[MySQL] SQLSyntaxErrorException: MySQL์—์„œ์˜ SELECT FOR UPDATE WAIT N ๊ตฌ๋ฌธ ์‚ฌ์šฉ

โœ”๊ฒฐ๋ก ๐Ÿ‘€๋ฌธ์ œ ์ •์˜โ“ ์›์ธ ์ถ”๋ก  & ํ•ด๊ฒฐ์ฑ… ์‹œ๋„๐Ÿ” ์›์ธ๐Ÿ”œ ๋‚˜๊ฐ€๋ฉฐRef โœ”๊ฒฐ๋ก MySQL์—์„œ๋Š” Oracle์— ์žˆ๋Š” SELECT FOR UPDATE WAIT N ๊ตฌ๋ฌธ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋Œ€์‹  NOWAIT & SKIP LOCKED ์˜ต์…˜์ด ์กด์žฌํ•œ๋‹ค. ๐Ÿ‘€๋ฌธ์ œ ์ •์˜MySQL์—์„œ SELECT FOR UPDATE WAIT 3 ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉ ์‹œ SQLSyntaxErrorException ์˜ค๋ฅ˜ ๋ฐœ์ƒ.์ด ๊ตฌ๋ฌธ์€ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ๋ฝ์„ ๊ฑธ๊ณ  ์žˆ์„ ๊ฒฝ์šฐ, ์ง€์ •๋œ ์‹œ๊ฐ„(์˜ˆ: 3์ดˆ) ๋™์•ˆ ์žฌ์‹œ๋„๋ฅผ ์‹œ๋„ํ•˜๊ณ , ๊ทธ ์‹œ๊ฐ„ ์•ˆ์— ๋ฝ์„ ์–ป์ง€ ๋ชปํ•˜๋ฉด ์—๋Ÿฌ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์˜ต์…˜์ด๋‹ค.java.sql.SQLSyntaxErrorException Create breakpoint : You have an error in your SQL syntax; check t..

Database/SQL 2024.02.09

SQL ๊ธฐ์ดˆ ์š”์•ฝ๋ณธ

์ž‘์„ฑ์ผ์ž: 2023๋…„ 4์›” 16์ผ 1. SQL ์†Œ๊ฐœSQL ๋ช…๋ น์–ด ๊ธฐ๋ณธ ๋ถ„๋ฅ˜4. STORED FUNCTION๋ฌธ์žํ˜• ํ•จ์ˆ˜๊ทธ๋ฃน ํ•จ์ˆ˜5. GROUP BY & HAVINGGROUP BYGROUP BY ์˜ˆ์ œHAVING ์ ˆHAVING ์˜ˆ์ œ6. JOINJOIN์ด๋ž€?JOIN์˜ ์ข…๋ฅ˜JOIN ์˜ˆ์ œSET ์—ฐ์‚ฐ์žSET ์—ฐ์‚ฐ์ž ์˜ˆ์ œ - UNION ALL7. ์„œ๋ธŒ์ฟผ๋ฆฌ์„œ๋ธŒ์ฟผ๋ฆฌ๋ž€?์„œ๋ธŒ์ฟผ๋ฆฌ ์ข…๋ฅ˜Single Row SubQueryMulti Row SubQueryMulti Column SubQueryFROM์ ˆ์˜ SubQueryํ™œ์šฉHAVING์ ˆ์—์„œ์˜ SubQueryCREATE์ ˆ์—์„œ์˜ SubQuery(ํ…Œ์ด๋ธ” ๋ณต์‚ฌ, ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋งŒ ๋ณต์‚ฌ)DML(INSERT, UPDATE)๋ฌธ์—์„œ์˜ SubQUERY8. Constraint ์ œ์•ฝ์กฐ๊ฑด์ œ์•ฝ์กฐ๊ฑด์˜ ์ข…๋ฅ˜9. ..

Database/SQL 2024.01.24

MVCC(Multi-Version Concurrency Control)

1. MVCC์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๋ฐฉ๋ฒ•1) Current๋””์Šคํฌ์—์„œ ์บ์‹œ๋กœ ์ ์žฌ๋œ ์›๋ณธ ๋ธ”๋ก์„ ํ˜„์žฌ ์ƒํƒœ ๊ทธ๋Œ€๋กœ ์ฝ๋Š” ๋ฐฉ์‹ 2) Consistent์ฟผ๋ฆฌ๊ฐ€ ์‹œ์ž‘๋œ ์ดํ›„์— ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ ์˜ํ•ด ๋ณ€๊ฒฝ๋œ ๋ธ”๋ก์„ ๋งŒ๋‚˜๋ฉด ์›๋ณธ ๋ธ”๋ก์œผ๋กœ๋ถ€ํ„ฐ ๋ณต์‚ฌ๋ณธ(CR copy) ๋ธ”๋ก์„ ๋งŒ๋“ค๊ณ , ๊ฑฐ๊ธฐ์— Undo ๋ฐ์ดํ„ฐ๋ฅผ ์ ์šฉํ•จ์œผ๋กœ์จ ์ฟผ๋ฆฌ๊ฐ€ ‘์‹œ์ž‘๋œ ์‹œ์ ’์œผ๋กœ ๋˜๋Œ๋ ค์„œ ์ฝ๋Š” ๋ฐฉ์‹ 2. SCN(System Commit Number)Consistent ๋ชจ๋“œ๋ฅผ ์ดํ•ดํ•˜๋ ค๋ฉด SCN์„ ์•Œ์•„์•ผ ํ•œ๋‹ค. Consistent ๋ชจ๋“œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋‹ค๊ฐ€ ๋ธ”๋ก SCN > ์ฟผ๋ฆฌ SCN ? ๋ณธ์‚ฌ๋ณธ ๋ธ”๋ก ๋งŒ๋“ค๊ณ , Undo ๋ฐ์ดํ„ฐ๋ฅผ ์ ์šฉํ•œ๋‹ค.⇒ ์ฟผ๋ฆฌ๊ฐ€ ์‹œ์ž‘๋œ ์‹œ์ ์œผ๋กœ ๋˜๋Œ๋ ค์„œ Read Consistency๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง„๋‹ค. SELECT : ํ•ญ์ƒ Consistent ๋ชจ๋“œ๋กœ..

Database/SQL 2024.01.14

[Oracle] ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„

์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ์šฐ์„ ์ˆœ์œ„ ์—ฐ์‚ฐ์ž 1 ์‚ฐ์ˆ ์—ฐ์‚ฐ์ž (*, /, +, -) 2 ์—ฐ๊ฒฐ ์—ฐ์‚ฐ์ž ( 3 ๋น„๊ต์—ฐ์‚ฐ์ž ( , ≤, ≥, , = ) 4 IS NULL, LIKE, IN 5 BETWEEN 6 NOT ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž 7 AND ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž 8 OR ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž ์ด๊ฑธ ๋ชฐ๋ผ์„œ 3์‹œ๊ฐ„์ด๋‚˜ ์‚ฝ์งˆ์„ ํ•œ ์ ์ด ์žˆ์—ˆ๋‹ค. ORA-01843: not a valid month ๋ผ๋Š” ์—๋Ÿฌ๊ฐ€ ์ž๊พธ ๋ฐœ์ƒํ–ˆ๋‹ค ORA-01843: ์ง€์ •ํ•œ ์›”์ด ๋ถ€์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ORA-01843: not a valid month SELECT * FROM PRODUCT P WHERE UPPER(P.PANME) LIKE UPPER('%ํ…Œ์ŠคํŠธ%') AND SYSDATE BETWEEN TO_DATE(CONCAT(NVL(P.SDATE,'20000101'), '0000..

Database/SQL 2022.01.17