Oracle Database Application Optimizations for SAP

SAP는 인메모리 데이터베이스인 HANA를 개발했을 때 자사의 애플리케이션이 새로운 인메모리 데이터베이스의 최악의 적이라는 사실을 발견했습니다. SAP는 HANA의 이점을 활용하기 위해서는 자사의 애플리케이션을 최적화해야 한다는 사실을 깨달았습니다. SAP는 HANA에만 집중하는 반면, Oracle과 같이 기능이 풍부한 데이터베이스들도 동일한 최적화를 지원하고 그를 활용한 이점을 얻을 수 있습니다.

SAP 애플리케이션 최적화를 위한 Oracle Database 지원

업무 배분 최적화

SAP는 데이터베이스를 멍청한 데이터 저장소 정도로 생각했습니다. 사용자는 데이터를 활용한 작업을 수행하고자 할 때마다 데이터를 전송해야만 했습니다. 인텔리전스가 SAP Application Server에 있기 때문입니다.

이 접근 방식의 단점은 분명합니다. 1백만 개의 값의 합계를 계산해야 하고 이러한 값이 서로 다른 통화로 화폐를 나타내는 경우 1백만 개의 개별 값이 데이터베이스 서버에서 애플리케이션 서버로 전송됩니다. 그리고 계산이 완료된 후에는 그대로 버려집니다. 이 접근법으로 인한 네트워크 트래픽은 성능 저하를 일으킵니다.

이러한 인사이트에 대한 응답으로서 SAP는 애플리케이션 계층에서 데이터베이스 계층으로 데이터 집약적인 계산이 필요한 코드를 내려보내는 'Push down' 전략을 개발했습니다. 그리고 ABAP 코드가 데이터베이스에 저장된 호출 프로시저를 (암시적 또는 명시적으로) 수행할 수 있도록 하는 완전히 새로운 프로그래밍 모델을 개발했습니다. 또한 SAP NetWeaver Core Data Services(CDS)라는 표준 절차 라이브러리를 정의했습니다.

20년 전, Oracle은 이미 동일한 아이디어를 바탕으로 동일한 결정을 내렸습니다. Oracle Database 버전 7부터는 개발자가 데이터베이스 내에서 저장 및 실행할 수 있는 프로시저와 함수를 생성할 수 있습니다. 따라서 Oracle Database에서도 사용할 수 있는 CDS가 개발될 수 있었고, 현재 SAP 애플리케이션 개발자도 이를 사용할 수 있습니다.

데이터 모델 최적화

SAP BW: 플랫 InfoCubes

SAP의 데이터 모델(애플리케이션이 사용하는 테이블 세트들 및 그들 간의 관계)은 15년 또는 20년 전에 정의되었으며 디스크 지향 데이터베이스에 최적화되었습니다. 그러나 디스크 기반 컴퓨팅 시대의 최적화는 인메모리 컴퓨팅 시대에는 장애물로 작용했습니다.

가장 유명한 예는 SAP BW 큐브의 내부 구조 일 것입니다. 비즈니스 또는 사용자 관점에서 하나의 단일 '큐브'처럼 보이는 것은 실제로 여러 테이블 세트이며, 이들 간의 관계는 다중 레벨 계층('스타' 또는 '스노플레이크' 스키마)으로 설명될 수 있습니다. 쿼리 또는 보고서 실행 시 많은 조인이 필요한 이 복잡한 구조는 인메모리 데이터베이스의 속도를 상당히 늦춥니다. 따라서 SAP는 HANA 상의 SAP BW를 위한 새롭고 간단한 데이터 모델을 설계하였고, HANA-Optimized InfoCubes라고 이름지었습니다. 그러나 이 새로운 데이터 모델은 HANA에만 최적화된 것은 아닙니다. 인메모리 컴퓨팅 전반에 대해 최적화되어 있습니다. 따라서 Oracle Database In-Memory를 활성화한 Oracle 사용자들의 SAP도 이를 구현할 수 있으며, 유일한 차이점은 이름(Flat InfoCubes 또는 간단히 Flat Cubes)뿐입니다.

SAP OLTP 애플리케이션: Table Declustering

Table Declustering은 덜 유명하지만 중요한 최적화 방식입니다. 클러스터 테이블은 하나의 단일(물리적) 테이블 열에 전체(논리적) 레코드를 저장합니다. 이러한 복잡한 값은 SAP Application Server는 해석할 수 있지만, 데이터베이스 서버는 해석할 수 없습니다. 즉, 클러스터 테이블이 포함된 경우 코드 푸시다운이 불가능합니다. 따라서 이제 SAP는 HANA 및 Oracle Database용 Table Declustering을 지원합니다.

애플리케이션 개발 최적화

방금 설명한 CDS 프레임워크의 이점은 SAP 애플리케이션(즉, SAP 개발자가 개발한 표준 애플리케이션)에만 국한되지 않습니다. 고객들에게 있어 자체 개발 애플리케이션은 SAP 환경의 필수적인 부분입니다. 이러한 애플리케이션 중 대부분은 CDS 기능을 사용하여 상당한 이점을 얻을 수 있습니다.

CDS 뷰는 OData를 통해 표시될 수 있습니다. CDS의 OData 노출을 바탕으로 개발 프레임워크 SAP WEB IDE를 사용하여 SAP Fiori 응용 프로그램을 만드는 것이 더 직관적인 방법입니다. 자세한 내용은 ABAP Core Data Services on anyDB 보고서를 참조하십시오.