๊ฒฐ๋ก : HANA DB์์๋ index๋ primary key์ ์ํ ์๋ฌต์ ์ธ(implicit) ์ ๋ ฌ์ด ๋์ง ์๋๋ค. READ...BINARY SEARCH๋ DELETE ADJACENT DUPLICATES ๋ฑ ์ ๋ ฌ์ด ํ์์ธ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๊ธฐ ์ ์๋ ๋ฐ๋์ ORDER BY๋ SORT BY ๊ตฌ๋ฌธ์ ์ด์ฉํด์ ๋ช ์์ ์ผ๋ก ์ ๋ ฌ์ ํด์ฃผ์ด์ผ ํ๋ค.
๐ข๋ฌธ์
์๋ฅผ ๋ค์ด๋ณด์. EKPO ํ ์ด๋ธ์๋ ํค๊ฐ์ผ๋ก EBELN(๊ตฌ๋งค๋ฌธ์๋ฒํธ)์ EBELP(๊ตฌ๋งค๋ฌธ์ ์์ดํ ) ๋ ๊ฐ์ง๊ฐ ์๋ค. ํ ์ด๋ธ ๋ฐ์ดํฐ๋ ์๋์ ๊ฐ์ด ์์ผ๋ฉฐ, ๋ณ๋๋ก ์์ฑํ ์ธ๋ฑ์ค๋ ์๋ค๊ณ ๊ฐ์ ํ์.
EBELN | EBELP |
4500000001 | 1 |
4500000001 | 2 |
4500000002 | 1 |
4500000003 | 1 |
๊ทธ๋ฆฌ๊ณ ์๋ ๊ตฌ๋ฌธ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ทํด์ค๋ฉด ์ด๋ค ๊ฒฐ๊ณผ๊ฐ์ด ๋ฆฌํด๋ ๊น? ์ ๋ต์ ์ด๋ค DB๋ฅผ ์ฌ์ฉํ๋๋์ ๋ฐ๋ผ ๋ค๋ฅด๋ค.
SELECT EBELN,
EBELP,
FROM EKPO
INTO TABLE @DATA(LT_EKPO).
Row๊ธฐ๋ฐ์ DB (ex. ์ค๋ผํด)
์ค๋ผํด DB์ ๋ํด ์์ ๋ชจ๋ฅด์ง๋ง, ์๋ง ์๋์ ๊ฐ์ด ๋ฆฌํด๋ ๊ฒ์ด๋ค. ํค๊ฐ์ผ๋ก EBELN, EBELP๊ฐ ์กํ์๊ธฐ ๋๋ฌธ์ ๋ด๊ฐ ๋ณ๋๋ก SELECT๋ฌธ์์ ORDER BY๋ฅผ ํ๊ฑฐ๋ LT_EKPO ํ ์ด๋ธ์ SORT BY ํ์ง ์์๋ EBELN๊ณผ EBELP ๊ฐ์ ๋ฐ๋ผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ํ ์ด๋ธ์ด ๋ฆฌํด๋๋ค.
EBELN | EBELP |
4500000001 | 1 |
4500000001 | 2 |
4500000002 | 1 |
4500000003 | 1 |
์ค์ ๋ก ๋ ๊ฑฐ์ ์ฝ๋๋ค ์ค์์๋ DB๊ฐ ์์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์๋ํ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ๊ณ ์์ฑํ ์ฝ๋๋ค์ด ์์ธ๋ก ๊ฝค ์๋ค. BINARY SEARCH๋ฅผ ํ๊ธฐ ์ ์ ์ ๋ ฌ์ ํ์ง ์์๋๋ฐ๋ ์ง๊ธ๊น์ง ๋ฌธ์ ์์ด ์ฌ์ฉํ์๊ธธ๋ ์์ธํ ํ์ธํด๋ณด๋ฉด ํ ์ด๋ธ์ ํค๊ฐ๊ณผ BINARY SEARCH ๊ตฌ๋ฌธ์์ ์ฌ์ฉํ๋ ํ๋๋ค์ด ์ผ์นํ๋ ๊ฒฝ์ฐ๋ค์ด ๋๋ค์์๋ค. BINARY SEARCH๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ SORT BY ๊ตฌ๋ฌธ์ ๋ฐ๋์ ์ฌ์ฉํ๋ผ๊ณ ๊ฐ๋ ฅํ ๊ถ๊ณ ํ์ง๋ง, ์ด์จ๋ ์ง๊ธ๊น์ง ๋ฌธ์ ์์ด ์ฌ์ฉ๋์์ผ๋ฉด ์ ๋ง ๋คํ์ธ ์ผ์ด๋ค.
Column๊ธฐ๋ฐ์ DB (ex. HANA)
๊ทธ๋ ๋ค๋ฉด HANA DB์์๋ ์ด๋ป๊ฒ ๋ฆฌํด๋ ๊น? ์ ๋ต์ "์ ์ ์๋ค"์ด๋ค. ์ค์ํ ๊ฒ์, ์ค๋ผํด DB์ ๊ฐ์ด primary key์ ํด๋นํ๋ EBELN๊ณผ EBELP ๊ฐ์ ๋ฐ๋ผ ์ ๋ ฌ๋์ด ๋์ค์ง ์์ ์๋ ์๋ค๋ผ๋ ์ ์ด๋ค. ์๋์ ๊ฐ์ด ๊ตฌ๋งค๋ฌธ์ 4500000001๋ฒ์ ๋ ๋ฒ์งธ ์์ดํ ์ด ๊ฐ์ฅ ๋ง์ง๋ง์ ๋ฆฌํด๋ ์๋ ์๋ค. ์ด๋ฐ ์ํฉ์์ READ... BINARY SEARCH ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ฉด ๋ด๊ฐ ์๋ํ๋๋ก ๊ฒฐ๊ณผ๊ฐ์ด ๋์ค์ง ์์ ์ ์๋ค.
EBELN | EBELP |
4500000001 | 1 |
4500000002 | 1 |
4500000003 | 1 |
4500000001 | 2 |
๐ข ํด๊ฒฐ ๋ฐฉ๋ฒ
์์ ๊ฐ์ด Row๊ธฐ๋ฐ๊ณผ ๋ฌ๋ฆฌ Column๊ธฐ๋ฐ์ HANA DB์์๋ ์ธ๋ฑ์ค/Primary Key์ ์ํ ์๋ฌต์ ์ธ ์ ๋ ฌ์ด ์ง์๋์ง ์๋๋ค๋ ๋ฌธ์ ์ ์ด ์๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ ๊น?
โ ํด๊ฒฐ์ฑ ์ ๊ฐ๋จํ๋ค. ์์ผ๋ก ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ ๋์๋ ํ์์ ๋ฌด์กฐ๊ฑด ๋ช ์์ ์ผ๋ก ORDER BY๋ SORT BY ๊ตฌ๋ฌธ์ ์์ฑ ํด์ฃผ๋ฉด ๋๋ค.
์ฌ์ค ์ ๋ ฌ์ด ์ ํ๋์ด์ผ ํ๋ ๊ตฌ๋ฌธ๋ค(READ..BINARY SEARCH, DELETE ADJACENT DUPLICATES, AT NEW ๋ฑ)์ ์ฌ์ฉํ๊ธฐ ์ ์๋ ๋๋ถ๋ถ์ด ์ต๊ด์ ์ผ๋ก๋ผ๋ SORT BY ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ค. ๊ทธ๋์ HANA DB๋ก ์ ํํ ํ์๋ ๋ณ๋ค๋ฅธ ์ด์๊ฐ ์๋ ๊ฒ์ด ๋๋ถ๋ถ์ด๋ค.
โ ๊ทธ๋ฐ๋ฐ ๋ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ์๋ค. ๋ง์ฝ ์ค๋ผํด DB์์ HANA DB๋ก ์ ํํ๊ธฐ๋ก ํ๋๋ฐ, ๊ทธ๋์ ์ธ๋ฑ์ค๋ ํค๊ฐ ์์์ ์ ๋ ฌํด์ค ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๊ณ ์์ฑํ๋(SORT BY๋ฅผ ์๋ตํ๋) ํ๋ก๊ทธ๋จ๋ค์ ์ด๋ป๊ฒ ์ฐพ์๋ผ๊น?
โ SAP์์ ์๋ ค์ค ๋ฐฉ๋ฒ๋๋ก ํ๋ฉด ๋๋ค. SAP ๋ด๋ถ์ ์๋ ์ฝ๋์ธ์คํ์ ํด(T-code SCII, ๋์ ๋ ๊ธ์๋ ๋๋ฌธ์ i์ด๋ค)์ ์ด์ฉํด์ ์ํ์ฑ์ด ์๋ ๊ตฌ๋ฌธ์ ์ฐพ์๋ผ ์ ์๋ค.
T-code SCII๋ฅผ ์น๊ณ ๋ค์ด๊ฐ๋ฉด ์ฝ๋ ์ธ์คํํฐ๋ฅผ ํตํด ์ ๊ฒํ ์ ์๋ ํญ๋ชฉ๋ค์ด ์ญ ๋์ด๋์ด ์๋ค. ์ดํด๋ฅผ ์ํด ํด๋น ๋งํฌ๋ฅผ ์ผ๋๊ณ ํ์ธํ๋ ๊ฒ์ ์ถ์ฒํ๋ค. ์ด์ค์์ Robust Programming์ด๋ผ๋ ์นดํ ๊ณ ๋ฆฌ ์๋์ ๋ค์๊ณผ ๊ฐ์ ํญ๋ชฉ์ด ์๋ค. ์ด ํญ๋ชฉ์ ์ฒดํฌํ๊ณ ํจํค์ง ๋จ์๋ก ํ๋ก๊ทธ๋จ์ ๋๋ฆฌ๋ฉด ์ํ์์๊ฐ ์๋ ํ๋ก๊ทธ๋จ๊ณผ ๊ตฌ๋ฌธ ์์น๋ฅผ ์ก์๋ผ ์ ์๋ค.
Search problematic statements for result of SELECT/OPEN CURSOR without ORDER BY
๐ข ์ HANA๋ ๋ค๋ฅผ๊น
์ฌ์ค ์ด ๋ถ๋ถ์ด ์ ์ผ ๊ถ๊ธํ๋ฐ, ์์ง ๋ช ํํ ๋ต์ ์ฐพ์ง ๋ชปํ๋ค. ๊ทธ๋๋ง ์ฐพ์ ์๋ฃ๋ค์์๋ ๋๋ถ๋ถ "HANA DB๊ฐ Column based DB์ด๊ธฐ ๋๋ฌธ์ด๋ค"๋ผ๊ณ ๋ง ์ด์ผ๊ธฐํ๊ณ , ๋ ์์ธํ ์ด์ ๋ ์๋ ๋ฐฉ์์ ์ค๋ช ํ์ง๋ ์๊ณ ์๋ค.
์ ๊ทธ๋ด๊น ์ ์ถ๋ผ๋ ํ๊ณ ์ถ์๋ฐ ์ผ๋จ DB ๊ณต๋ถ๋ฅผ ์ด์ฌํ ํด์ผ๊ฒ ๋ค.
์ฐธ๊ณ
https://launchpad.support.sap.com/#/notes/0002315679
http://sapjoy.co.kr/index.php?mid=HANA&document_srl=113399&m=0
https://cafe.naver.com/saphana/138
https://stackoverflow.com/questions/48690890/how-does-columnar-databases-do-indexing
'SAP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๊ธฐํ] SAP GUI์ Application Server๊ฐ ํต์ - DIAG ํ๋กํ ์ฝ (0) | 2021.08.05 |
---|