본문 바로가기
SAP

용량 큰 BEx Workbook 빨리 갱신하기

by wizmusa 2015. 2. 10.

 BEx query를 각각 실행하면 빠른데 엑셀 워크북 상태에서 갱신하면 무척 오래 걸리는 때에는 BEx query 워크시트를 아예 별도의 파일로 빼내어 따로 갱신하면 빨리 끝난다.


 SAP BW의 BEx Excel Add-in은 VBA macro 기반에서 움직이므로, cell이 몇 만 개 수준만 되어도 메모리를 많이 차지하는 엑셀의 특성 때문에 무척이나 느려진다. 실상 워크북 안에 내장한 BEx 질의는 이미 완료했는데도 cell이 변할 때마다 엑셀이 계산을 해대는 통에 CPU와 RAM 자원을 몽땅 잡아먹은 상태로 한 시간이 걸리기도 한다.[각주:1]


 raw data 형태의 BEx query를 모두 결과요약[각주:2] 형태로 바꿔야 cell을 줄여서 엑셀 계산이 줄어드는데 이게 매번 가능한 게 아니라[각주:3] 오랫동안 고심하던 문제였다. 그러던 차에 우연히 기획 부서의 현업 사용자가 쓰는 방식을 보았다. 기획 부서 답게 BEx 뿐만 아니라 다른 형태의 대용량 raw data를 다뤄 본 경험이 많았는지, 보고용 엑셀 파일에서 다른 엑셀 파일에 있는 데이터를 불러 쓰는 문서가 많았다.


 처음 만들 때는 번잡해 보여도 해두면 훨씬 낫다. BEx로 일보 만드신 분들은 필히 참고하시길 바란다.


  1. BEx query만 모아 둔 workbook을 만든다.
    (vlookup 같은 걸 쓰지 않은 오로지 BEx query만 embed한 문서)
  2. 보고용 엑셀 파일에서 데이터만 든 workbook을 외부 파일 셀 참조[각주:4]한다.
  3. 갱신할 때에는 먼저 BEx workbook의 변수를 바꾸고 저장한 후, 보고용 엑셀 파일을 '새로 고침' 한다.


  1. BW 서버 입장에서 보면 튜닝해 줄 요소가 없다. PC만 바쁠 뿐 query 자체는 끝난 지 오래다. 이런 일로 BW가 느리다는 사용자의 오해가 많다. [본문으로]
  2. 엑셀에서 피벗 테이블을 만들지 말고 BEx에서 피벗 테이블을 만든다는 느낌 [본문으로]
  3. 데이터가 SAP BW에 없으면 결국 raw data를 받아 두는 워크시트가 필요하다. [본문으로]
  4. 범위 지정, vlookup, 피벗 테이블 모두 된다. [본문으로]
반응형