SAP HANA DB에서 내가 만든 테이블 정보 (이름, 설명, 건수) 한 번에 조회하는 SQL 쿼리
SAP 개발자나 관리자라면 시스템에 어떤 Z 테이블이 있는지, 각 테이블에 데이터가 얼마나 쌓여 있는지 궁금할 때가 많습니다. 특히 특정 접두어(예: ZCO)로 시작하는 테이블들을 한꺼번에 찾고 싶을 때가 있는데요.
이번 블로그 글에서는 SAP HANA DB에서 ZCO로 시작하는 모든 테이블의 이름, SAP에 등록된 설명, 그리고 현재 데이터 건수까지 깔끔하게 조회할 수 있는 SQL 쿼리를 알려드립니다. 이 쿼리 하나면 필요한 정보를 쉽고 빠르게 파악할 수 있습니다!
왜 이 정보가 중요할까요?
- 시스템 파악: 내가 작업했거나 다른 사람이 개발한 Z 테이블 목록을 확인하여 시스템의 커스터마이징 현황을 파악할 수 있습니다.
- 데이터 볼륨 분석: 각 테이블의 데이터 건수를 확인하여 데이터 증가 추이를 모니터링하고 성능 저하 요인을 미리 파악할 수 있습니다.
- 개발 및 분석 효율성 증대: 테이블의 기능(설명)을 바로 확인하며 필요한 테이블을 빠르게 찾을 수 있습니다.
■ SQL 쿼리 공개
다음은 SAP HANA DB에서 실행할 수 있는 쿼리입니다. 저는 ZCO로 시작하는 테이블을 조회했습니다.
SELECT
M.TABLE_NAME, -- 테이블의 기술적인 이름 (예: ZCOT_MY_DATA)
T.DDTEXT AS TABLE_DESCRIPTION, -- SAP에 등록된 테이블 설명 (예: 나의 커스텀 데이터 테이블)
M.RECORD_COUNT -- 테이블에 저장된 레코드 (행)의 총 건수
FROM
SYS.M_TABLES AS M
JOIN
"<YOUR_SAP_SCHEMA_NAME>".DD02T AS T ON M.TABLE_NAME = T.TABNAME
WHERE
M.SCHEMA_NAME = '<YOUR_SAP_SCHEMA_NAME>'
AND M.TABLE_NAME LIKE 'ZCO%' -- 'ZCO'로 시작하는 테이블 필터링
AND T.DDLANGUAGE = 'K'; -- 테이블 설명 언어를 한국어('K')로 필터링
잠깐! 쿼리 실행 전에 꼭 확인하세요:
- <YOUR_SAP_SCHEMA_NAME> 변경: 쿼리 내 <YOUR_SAP_SCHEMA_NAME> 부분은 여러분의 SAP 시스템이 설치된 실제 SAP 스키마 이름으로 변경해야 합니다. 예를 들어, SAP BW 시스템이라면 SAPBW1, S/4HANA 시스템이라면 SAP<SID> 형태일 수 있습니다. 정확한 스키마 이름은 SAP Basis 담당자나 시스템 설정에서 확인 가능합니다. 스키마 이름은 대소문자를 구분할 수 있으므로 이중 따옴표(")로 묶어주는 것이 안전합니다. (예: "SAPHANADB".DD02T)
- 권한 확인: 이 쿼리를 실행하려면 SAP HANA DB에서 시스템 뷰(SYS.M_TABLES)와 SAP Dictionary 테이블(DD02T)을 조회할 수 있는 권한이 필요합니다.
- SQL 실행 도구: 이 쿼리는 SAP HANA Studio, SAP Web IDE Full-Stack, DBeaver 등 SAP HANA DB에 접속하여 SQL 쿼리를 실행할 수 있는 도구에서 사용 가능합니다.
쿼리 상세 설명
- SYS.M_TABLES AS M: SAP HANA DB의 모든 테이블에 대한 실시간 상태 및 통계 정보(레코드 건수 포함)를 제공하는 시스템 뷰 M_TABLES를 M이라는 별칭으로 사용합니다.
- "<YOUR_SAP_SCHEMA_NAME>".DD02T AS T: SAP 시스템의 데이터 딕셔너리 테이블 설명이 저장된 DD02T 테이블을 T라는 별칭으로 사용합니다. 이 테이블은 SAP 시스템이 설치된 스키마에 있습니다.
- JOIN ... ON M.TABLE_NAME = T.TABNAME: M_TABLES 뷰와 DD02T 테이블을 테이블 이름(TABLE_NAME과 TABNAME)을 기준으로 연결(조인)합니다.
- WHERE M.SCHEMA_NAME = '<YOUR_SAP_SCHEMA_NAME>': M_TABLES에서 지정된 스키마에 속한 테이블만 대상으로 합니다.
- AND M.TABLE_NAME LIKE 'ZCO%': 테이블 이름이 'ZCO'로 시작하는 패턴을 가진 테이블만 필터링합니다. %는 어떤 문자열이 와도 좋다는 와일드카드입니다.
- AND T.DDLANGUAGE = 'K': DD02T 테이블에서 테이블 설명의 언어가 한국어('K')인 데이터만 선택합니다.
더 유용한 정보를 함께 조회하려면?
위 쿼리에 다른 데이터 딕셔너리 테이블을 추가로 조인하면 테이블에 대한 더 많은 정보를 얻을 수 있습니다. 예를 들어 DD02L 테이블에는 테이블의 분류, 생성일, 최종 변경자 등의 기술적인 정보가 저장되어 있습니다.
DD02L 테이블을 조인하여 테이블 분류(TABCLASS), 생성일(CREATEDATE), 최종 변경자(AS4USER), 개발 패키지(PGNAME) 등을 추가로 조회하는 쿼리는 다음과 같습니다.
SELECT
M.TABLE_NAME,
T.DDTEXT AS TABLE_DESCRIPTION,
L.TABCLASS AS TABLE_CATEGORY, -- 테이블 분류 (예: TRANSP, POOL, CLUST)
L.CREATEDATE AS CREATION_DATE, -- 테이블 생성일
L.AS4USER AS LAST_CHANGED_BY, -- 최종 변경 사용자
L.PGNAME AS PACKAGE, -- 개발 패키지
M.RECORD_COUNT
FROM
SYS.M_TABLES AS M
JOIN
"<YOUR_SAP_SCHEMA_NAME>".DD02T AS T ON M.TABLE_NAME = T.TABNAME
JOIN
"<YOUR_SAP_SCHEMA_NAME>".DD02L AS L ON M.TABLE_NAME = L.TABNAME -- DD02L 조인
WHERE
M.SCHEMA_NAME = '<YOUR_SAP_SCHEMA_NAME>'
AND M.TABLE_NAME LIKE 'ZCO%'
AND T.DDLANGUAGE = 'K';
이 확장된 쿼리를 활용하면 ZCO 테이블들의 기능적 설명뿐만 아니라 기술적인 속성과 개발 정보까지 함께 파악하여 시스템을 더 깊이 이해하는 데 도움이 됩니다.
마무리
SAP HANA DB에서 커스텀 Z 테이블의 기본 정보를 조회하는 것은 시스템 관리 및 분석의 첫걸음입니다. 오늘 알려드린 SQL 쿼리가 여러분의 SAP 업무에 유용한 도구가 되기를 바랍니다.