
HANA 성능 Trace 없이 될까요? #shorts #SAP #HANA
개요 및 배경 SAP HANA 성능 튜닝을 시작할 때 가장 흔한 실패 원인은 "느낌"으로 튜닝하는 것입니다. 어떤 SQL이 얼마나 자원을 소모하는지 데이터 없이 인덱스를 추가하거나 쿼리를 뜯어고치면, 오히려 다른 쿼리의 성능이 떨어지거나 리소스가 낭비됩니다. Expensive State

개요 및 배경 SAP HANA 성능 튜닝을 시작할 때 가장 흔한 실패 원인은 "느낌"으로 튜닝하는 것입니다. 어떤 SQL이 얼마나 자원을 소모하는지 데이터 없이 인덱스를 추가하거나 쿼리를 뜯어고치면, 오히려 다른 쿼리의 성능이 떨어지거나 리소스가 낭비됩니다. Expensive State

STRING_AGG가 필요한 이유 — 여러 행을 한 줄로 관계형 데이터베이스에서 자주 마주치는 상황이 있습니다. 하나의 고객이 여러 개의 주문을 갖고, 하나의 주문이 여러 개의 상품 라인을 갖습니다. 이 데이터를 화면이나 리포트에 표시할 때 "고객 A: 노트북, 마우스, 키보드" 같은

개요 및 실전 배포 목표 SAP BTP Cockpit은 시각적으로 편리하지만, 반복 배포·CI/CD·원격 서버 작업에서는 오히려 병목이 됩니다. 이 글은 Cloud Foundry CLI(cf CLI) 하나만으로 로그인부터 서비스 바인딩, 매니페스트 배포, 롤백까지 전체 흐름을 완성하는

1. 왜 서브어카운트 설계가 프로젝트 초반의 승부수인가 SAP BTP 프로젝트에서 가장 자주 목격되는 실수는 "일단 하나 만들고 나중에 나누자" 는 접근입니다. 무료 트라이얼로 시작해 Proof of Concept(PoC)을 진행하다가, 어느 순간 그 서브어카운트에 개발/QA/운영 리소

1. 이 글에서 다루는 범위와 도달점 SAP BTP(Business Technology Platform) Cockpit은 클라우드 자원을 시각적으로 다루는 관제탑 역할을 합니다. 이 글은 BTP 계정에 처음 로그인하는 개발자가 Cloud Foundry 런타임 환경에서 서비스 인스턴스를

개요와 이 글에서 얻어갈 것 FULL OUTER JOIN은 SQL의 조인 종류 중에서도 가장 늦게 손이 가지만, 반대로 한 번 제대로 쓰면 다른 조인으로 풀기 어려운 문제를 단번에 해결해 주는 도구입니다. 특히 SAP HANA처럼 컬럼 스토어 기반 인메모리 엔진에서는 FULL OUTER

이 글에서 다루는 것 SAP HANA를 비롯한 모든 관계형 데이터베이스에서 데이터를 안전하게 변경하려면 트랜잭션(Transaction) 개념을 반드시 이해해야 합니다. 이 글은 SQL의 COMMIT 과 ROLLBACK 을 활용해 트랜잭션을 제어하는 방법을 실무 시나리오 중심으로 설명합니

개요 및 이 글에서 얻어갈 것 온라인 쇼핑몰에서 주문이 들어와 재고를 1개 차감하는 UPDATE를 실행한 직후, 결제 시스템 호출에서 네트워크 오류가 발생했다고 가정해 봅시다. 만약 그 UPDATE가 자동으로 즉시 반영되는 상태였다면 재고는 이미 줄어든 채로 결제는 실패한 모순 상태가

이 글에서 다루는 내용 SAP HANA 기반 시스템에서 SELECT * 구문은 개발 초기에는 편리해 보이지만, 프로덕션 환경에 그대로 배포되면 다양한 성능·유지보수 문제를 일으킵니다. 이 글에서는 SAP HANA Cloud(QRC 2/2024 기준) 및 HANA 2.0 SPS07 환경을

왜 DISTINCT가 예상대로 안 될까? 큰일나기 전에 알아두기 "분명히 SELECT DISTINCT 를 썼는데 왜 중복이 그대로 나오지?" SAP HANA 콘솔 앞에서 이런 의문을 가져본 적 있다면, 이 글은 정확히 그 답을 다룹니다. DISTINCT는 SQL 입문자가 가장 먼저 배우

1. 개요 및 이 글에서 다룰 것 SAP BTP(Business Technology Platform) 위에서 운영되는 클라우드 애플리케이션이 사내 방화벽 뒤편의 On-Premise SAP S/4HANA, ECC, 또는 Non-SAP 시스템 에 안전하게 접근해야 하는 시나리오는 하이브리드
개요 및 이 글에서 다룰 것 SAP BTP에서 가장 흔하게 발생하는 운영 장애 중 하나가 Quota 초과 입니다. 갑자기 서비스 인스턴스를 만들 수 없거나, 앱 배포가 실패하거나, 라이선스 비용이 예상보다 폭증하는 상황을 사전에 막으려면 Entitlement 구조와 Cockpit 운영,

에러 핸들링 없이 iFlow를 운영하면 생기는 일 새벽 3시, 운영팀에 긴급 호출이 옵니다. "어제 들어온 구매발주 17건이 S/4HANA에 안 들어왔어요." 로그를 뒤져보니 SAP BTP Integration Suite의 iFlow는 분명 메시지를 수신했는데, 중간 매핑 단계에서 Nu

SAP HANA SQLScript의 EXEC 문은 강력한 기능이지만, 잘못 사용하면 SQL Injection 공격에 그대로 노출됩니다. 이 글은 실무에서 발생하는 취약 패턴을 재현하고, 안전하게 Dynamic SQL을 설계하는 방법을 단계별로 설명합니다. Dynamic SQL의 동작 원

Statement Memory란 무엇인가 SAP HANA의 Statement Memory는 단일 SQL 문(statement)이 실행되는 동안 소비할 수 있는 최대 메모리 양을 제어하는 메모리 관리 체계다. 컬럼스토어 기반의 HANA는 복잡한 집계, 조인, 분석 쿼리를 인메모리로 처리하
예외 처리를 빼먹으면 진짜 큰일 납니다 HANA SQLScript로 작성한 프로시저가 운영 환경에서 갑자기 멈추고, 수천 건의 SalesOrder가 절반만 처리된 채 롤백되는 상황을 본 적이 있나요? 이 글은 SQLScript의 예외 처리(Exception Handling) 메커니즘을
예외를 무시하면 생기는 실제 장애 사례 SAP HANA SQLScript에서 예외 처리를 생략한 채 프로시저를 운영에 올리면, 단순한 버그가 아니라 데이터 정합성 자체가 무너지는 사고로 이어집니다. 예를 들어 SalesOrder 헤더는 INSERT 됐지만 라인 아이템 INSERT 단계에