검색 시간에 대한 동적 계산 영향 감소

멤버에 복합 공식이 포함되어 있지 않은 경우 밀집 차원의 멤버를 동적으로 계산할 때의 검색 시간 증가는 중요하지 않습니다. 희소 차원의 멤버에 동적 계산으로 태그를 지정할 때 검색 시간 증가가 중요할 수 있습니다.

검색 요소, 검색 버퍼 크기 및 계산기 캐시에 주의를 기울여 Essbase 데이터베이스에 대한 동적 계산 멤버의 효과를 분석하고 관리할 수 있습니다.

주:

질의 검색에 가장 큰 영향을 주는 함수 목록은 멤버 집합 함수 및 성능을 참조하십시오.

검색 요소 표시

검색 시간 증가를 추정하는 데 도움이 되도록 Essbase는 아웃라인을 저장할 때 데이터베이스 아웃라인에 대한 검색 계수를 계산합니다. EssbaseEssbase가 계산하는 데 가장 많은 비용이 드는 동적으로 계산된 데이터 블록을 기반으로 이 검색 계수를 계산합니다. 검색 요소는 집계만 고려합니다. 공식의 검색 영향은 고려하지 않습니다.

검색 계수는 Essbase가 가장 비싼 블록을 계산하기 위해 디스크 또는 데이터베이스에서 검색해야 하는 데이터 블록 수입니다. 데이터베이스에 밀집 차원에만 동적 계산 멤버가 있는 경우(희소 차원에는 동적 계산 멤버가 없음) 검색 계수는 1입니다.

검색 계수가 높은 아웃라인(예: 2000 초과)은 사용자가 데이터를 검색할 때 긴 지연을 일으킬 수 있습니다. 그러나 검색 시간에 대한 실제 영향은 사용자가 검색하는 동적으로 계산된 데이터 값의 수에 따라 달라집니다. 검색 계수는 지표일 뿐입니다. 일부 응용 프로그램에서는 데이터베이스 크기와 인덱스 크기가 줄어들기 때문에 동적 계산 멤버를 사용하면 검색 시간이 단축될 수 있습니다.

Essbase는 애플리케이션 로그에 검색 요소 값을 표시합니다.

이 샘플과 유사한 메시지는 검색 계수를 나타냅니다.


Essbase needs to retrieve [1] Essbase kernel blocks in order
to calculate the top dynamically-calculated block.

이 메시지는 Essbase가 가장 비싼 동적으로 계산된 데이터 블록을 계산하기 위해 하나의 블록을 검색해야 함을 알려줍니다.

검색 버퍼 크기 증가

사용자가 Smart View, MDX 또는 보고서 작성기에서 쿼리를 쿼리하는 경우 Essbase는 검색 버퍼를 사용하여 쿼리를 최적화합니다. Essbase는 더 큰 데이터 섹션을 동시에 처리할 수 있으므로 검색 버퍼 크기를 늘리면 쿼리 성능이 향상될 수 있습니다.

기본적으로 검색 버퍼 크기는 20KB입니다. 그러나 검색 버퍼 크기를 20KB보다 크게 설정하면 검색 시간도 단축될 수 있습니다.

검색 버퍼 크기를 늘리려면 MaxL alter database 문을 사용합니다. 예:

alter database Sample.Basic set retrieve_buffer_size 20kb;

또는 Essbase 웹 인터페이스를 사용하여 데이터베이스 사용자정의 설정에서 버퍼 크기를 변경할 수 있습니다.

동적 계산기 캐시 사용

기본적으로 Essbase가 밀집 차원에서 동적 계산 멤버를 계산할 때(예: 질의의 경우) 계산에 필요한 모든 블록을 동적 계산기 캐시라는 메모리의 영역에 씁니다. Essbase는 이러한 블록을 동적 계산기 캐시에 기록할 때 모든 동적 계산 멤버를 밀집 차원에 포함하도록 확장합니다.

질의가 밀집 차원에 2단계 계산 멤버를 포함하는 경우 검색된 각 블록에 대해 하나의 동적 계산기 캐시가 필요합니다.

Essbase 동적 계산기 캐시를 사용하면 동적 계산에 대한 메모리 사용을 중앙에서 제어할 수 있습니다. 또한 동적 계산기 캐시에서 데이터 블록을 관리하면 전체 메모리 공간 요구 사항이 줄어들고 메모리 할당을 수행하기 위한 운영 체제 호출 횟수를 줄여 성능을 향상시킬 수 있습니다.

주:

동적 계산기 캐시와 계산기 캐시는 서로 다른 접근 방식을 사용하여 계산 성능을 최적화합니다.

동적 계산기 캐시 크기 조정계산기 캐시 크기 조정을 참조하십시오.

동적 계산기 캐시 사용 검토

Essbase는 각 데이터 검색에 대해 애플리케이션 로그에 두 개의 메시지를 기록합니다. 다음 예제에서 첫번째 메시지는 검색에 필요한 총 시간을 설명합니다.


Regular Extractor Elapsed Time : [0.531] seconds
Regular Extractor Big Blocks Allocs -- Dyn.Calc.Cache : [30] non-Dyn.Calc.Cache : [0]

동적 계산기 캐시가 사용되는 경우 두 번째 메시지에는 데이터 계산기 캐시 내에서 계산된 블록 수(Dyn.Calc.Cache: [n])와 동적 계산기 캐시 외부의 메모리에서 계산된 블록 수가 표시됩니다(비Dyn.Calc.Cache: [n]).

동적 계산기 캐시가 효과적으로 사용되는지 여부를 확인하려면 두 메시지를 모두 검토하고 구성 설정을 고려하십시오. 예를 들어, 동적 계산기 캐시 외부 및 동적 계산기 캐시에서 블록이 계산되었음을 나타내는 경우 DYNCALCCACHEMAXSIZE 설정을 늘릴 수 있습니다.

지정된 최대 크기가 서버의 모든 동적 계산기 캐시에 대해 제공할 수 있는 크기이고 계산기 캐시 외부의 메모리를 사용하여 동적으로 계산된 검색을 완료하는 경우 스와핑 또는 페이징 작업 등으로 인해 허용할 수 없는 지연이 발생하는 경우 DYNCALCCACHEWAITFORBLK를 TRUE로 설정합니다.

성능 통계 문법과 함께 질의 데이터베이스 MaxL 문을 사용하여 동적 계산기 캐시 작업에 대한 요약을 볼 수 있습니다.