Calculation View 성능 90% 병목의 진짜 원인 #shorts #SAP #HANA
개요 — 이 글에서 얻어갈 것 Calculation View는 SAP HANA 모델링의 중심축이지만, 잘못 설계하면 수 초에서 수 분까지 응답이 느려지는 대표적인 병목 지점이기도 합니다. 이 글은 "왜 느려지는가"를 엔진 동작 원리 수준에서 짚고, PlanViz와 Explain Plan
개요 — 이 글에서 얻어갈 것 Calculation View는 SAP HANA 모델링의 중심축이지만, 잘못 설계하면 수 초에서 수 분까지 응답이 느려지는 대표적인 병목 지점이기도 합니다. 이 글은 "왜 느려지는가"를 엔진 동작 원리 수준에서 짚고, PlanViz와 Explain Plan
이 글이 답하는 질문 SAP HANA Cloud에서 CREATE TABLE 을 실행하면 기본적으로 컬럼 테이블이 만들어집니다. 그래서 많은 개발자가 "HANA는 무조건 컬럼"이라고 외우고 넘어갑니다. 대부분의 경우 그 선택이 맞습니다. 하지만 모든 테이블을 컬럼으로 만들면 오히려 손해를
개요: 왜 CAP 쿼리 성능을 다시 봐야 하는가 SAP CAP(Cloud Application Programming Model) Node.js 런타임은 CQL(CDS Query Language)을 통해 데이터베이스 접근을 추상화합니다. 편리한 만큼, 추상화 뒤에서 어떤 SQL이 실행되는
개요 — 이 글에서 다루는 것 S/4HANA 전환 프로젝트에서 SAP Readiness Check 리포트를 열었을 때 Custom Code 영역이 빨간불로 가득한 경험은 대부분의 마이그레이션 팀이 겪는 통과 의례입니다. 이 글은 ECC 6.0에서 S/4HANA(2022/2023 에디션
📖 개요와 이 글의 목표 SAP HANA Cloud에서 수량 × 단가 × (1 - 할인율) 같은 파생 값을 어디서 계산할지는 생각보다 성능에 큰 영향을 줍니다. 테이블에 계산형 컬럼(Generated/Calculated Column)으로 미리 정의해 두는 방식과, 매번 SELECT 문
S/4HANA 이관에서 커스텀 코드가 가장 큰 위험인 이유 S/4HANA 전환 프로젝트에서 예산 초과와 일정 지연의 가장 흔한 원인은 표준 기능이 아니라 수십 년간 쌓인 커스텀 ABAP 코드 입니다. ECC 시절 작성된 Z 프로그램은 S/4HANA에서 사라진 테이블(KONV, VBUK
인메모리 DB에서 JOIN이 성능을 좌우하는 이유 SAP HANA(HANA Cloud 및 HANA 2.0 SPS07 기준)는 데이터를 디스크가 아닌 메모리에 컬럼 단위로 저장합니다. 디스크 I/O가 병목이던 전통적인 DB와 달리, HANA에서는 JOIN 시 얼마나 많은 중간 결과(Int
📖 개요 및 이 글에서 다루는 내용 매출 리포트를 만들 때 주문이 없는 날짜가 통째로 사라져 차트가 끊겨 보인 경험이 있다면, 이 글이 해결책이 됩니다. SAP HANA의 SERIES_GENERATE 계열 함수는 시작값·종료값·증가 간격만 지정하면 날짜, 타임스탬프, 숫자 시퀀스를 테
📖 개요 및 핵심 체크포인트 ECC 시절에 만든 Classic BAdI와 CMOD/SMOD 기반 확장 코드를 그대로 S/4HANA로 가져오면, 컴파일은 통과해도 런타임에서 조용히 무너지는 경우가 많습니다. S/4HANA(예: S/4HANA 2023 On-Premise)에서는 커널 기반
1. 대용량 테이블의 조회 성능 문제 — 왜 파티셔닝이 필요한가 SAP HANA 컬럼 스토어 테이블은 인메모리 구조 덕분에 기본 조회 성능이 뛰어나지만, 데이터가 수억 건 단위로 쌓이기 시작하면 상황이 달라집니다. 가장 먼저 부딪히는 것은 단일 컬럼 스토어 테이블(또는 파티션)당 약 2
1. Execution Plan을 못 읽으면 왜 큰일인가 SAP HANA는 인메모리 컬럼 스토어 덕분에 웬만한 쿼리는 빠르게 처리하지만, 데이터가 수억 건으로 늘어나거나 조인이 복잡해지면 "HANA인데 왜 느리지?"라는 상황이 반드시 옵니다. 이때 감으로 인덱스를 추가하거나 힌트를 남발
📖 개요: 이 글에서 다루는 것 서브쿼리가 3중, 4중으로 중첩된 HANA SQL을 유지보수해 본 적이 있다면, WITH 절(CTE, Common Table Expression)이 왜 "가독성 끝판왕"이라 불리는지 바로 공감할 수 있습니다. 이 글은 SAP HANA(온프레미스 2.0
1. Window 함수가 필요한 순간 — 서브쿼리 지옥에서 벗어나기 SAP HANA에서 "카테고리별 매출 상위 3개 제품"을 뽑아야 할 때, Window 함수를 모르면 보통 상관 서브쿼리(correlated subquery)나 셀프 조인으로 해결하게 됩니다. 문제는 이 방식이 행마다 서
개요 및 학습 체크리스트 CAP(Cloud Application Programming Model) 프로젝트를 로컬 SQLite에서 개발하다가 BTP의 HANA Cloud로 처음 배포할 때 가장 흔히 겪는 실패가 "연결은 성공했는데 테이블이 없다" 또는 "Database user is m
1. 왜 분위수 함수가 실무 분석의 핵심인가 매출 데이터, 응답 시간, 재고 회전율 같은 수치형 지표를 다룰 때 평균(AVG)만으로는 데이터의 진짜 모습을 놓치기 쉽습니다. 한 명의 초대형 고객이 전체 평균을 왜곡시키거나, 응답 시간의 상위 5%가 서비스 품질을 좌우하는 상황은 SAP
1. 왜 LAG/LEAD가 필요한가 — 시계열 비교의 도전 매출, 재고, 센서 측정값, 로그 이벤트처럼 시간 축을 따라 흐르는 데이터를 분석할 때 가장 자주 등장하는 요구사항은 "이전 값 대비 얼마나 변했는가" 혹은 "다음 값과 비교했을 때 어떤 추세인가"입니다. 예를 들어 어제 대비
STRING_AGG가 필요한 이유 — 여러 행을 한 줄로 관계형 데이터베이스에서 자주 마주치는 상황이 있습니다. 하나의 고객이 여러 개의 주문을 갖고, 하나의 주문이 여러 개의 상품 라인을 갖습니다. 이 데이터를 화면이나 리포트에 표시할 때 "고객 A: 노트북, 마우스, 키보드" 같은
CAP 프로젝트에서 HANA Cloud 연결이 실패하는 진짜 이유 SAP CAP(Cloud Application Programming) 프로젝트를 처음 HANA Cloud에 연결하려는 개발자들이 공통으로 겪는 상황이 있다. cds watch 로 로컬에서 잘 돌아가던 서비스가 HANA C
개요와 이 글에서 얻게 될 것 CAP(SAP Cloud Application Programming Model) 프로젝트를 로컬에서 cds watch 로 개발하다가 BTP HANA Cloud로 전환하는 순간 대다수 개발자가 "connection refused" 혹은 "no such tab
개요와 이 글에서 얻어갈 것 CAP(Cloud Application Programming Model) 프로젝트를 SAP BTP에서 운영할 때 가장 먼저 마주치는 벽 중 하나가 바로 HANA Cloud 연결입니다. 로컬 SQLite에서는 잘 돌아가던 서비스가 cf push 후에는 "no