둘다 소트 힙인데 정확히 어떤것이며 둘의 차이점은 무엇입니까?
Private Sort heap은 다른 app는 사용을 못하고 Shared Sort heap 서로 공유가
가능한 힙 영역입니까?
도무지 문서를 봐도 이해가 안가네여?
그리고 db snapshot 모니터 요소중 Total Private Sort heap allocated,Total Shared Sort heap allocated이 의미하는 바는 무엇인지요?
위와 관련이 있는겁니까?
개별 및 공유 정렬에서는 두 개의 서로 다른 메모리 소스에서 메모리를 사용합니다. 공유 정렬 메모리 영역의 크기는 sheapthres 의 값을 기초로 데이터베이스에 처음으로 연결될 때 통계적으로 사전에 결정됩니다. 개별 정렬 메모리 영역의 크기에는 제한이 없습니다.
sheapthres 매개변수는 개별 정렬과 공유 정렬에 대해 다르게 사용됩니다.
정렬 힙을 사용하는 조작의 예에는 정렬, 해시 조인, 동적 비트맵(인덱스 AND 작업 및 Star Join에 사용) 및 테이블이 메모리에 있는 조작이 있습니다.
임계값을 명시적으로 정의하면 데이터베이스 관리 프로그램이 많은 수의 정렬에 과다한 메모리를 사용하는 것을 방지할 수 있습니다.
파티션되지 않음에서 파티션된 데이터베이스 환경으로 이동할 때 매개변수의 값이 증가할 이유는 없습니다. 단일 데이터베이스 파티션 환경에서 데이터베이스와 데이터베이스 관리 프로그램 구성 매개변수를 조정한 적이 있으면, 대부분의 경우 같은 값은 파티션된 데이터베이스 환경에서도 제대로 작동합니다.
데이터베이스 관리 프로그램 구성 매개변수와 같은 정렬 힙 임계값 매개변수는 전체 DB2 인스턴스에 적용됩니다. 이 매개변수를 다른 노드 또는 파티션에서 다른 값으로 설정하는 방법은 둘 이상의 DB2 인스턴스를 작성하는 것입니다. 이러한 경우에 다른 데이터베이스 파티션 그룹에서 다른 DB2 데이터베이스를 관리해야 합니다. 이러한 배열은 파티션된 데이터베이스 환경의 여러 가지 이점을 무효하게 만듭니다.
권장사항: 데이터베이스 관리 프로그램 인스턴스에 있는 가장 큰 정렬 힙 매개변수의 합당한 배수로 이 매개변수를 설정하는 것이 가장 좋습니다. 이 매개변수는 인스턴스 내의 데이터베이스에 정의되어 있는 최대 정렬 힙 의 최소 두 배는 되어야 합니다.
개별 정렬을 수행하고 시스템 메모리가 제한되지 않을 경우에는 다음 단계를 통해 이 매개변수에 맞는 최적의 값을 계산할 수 있습니다.
(데이터베이스에 대해 실행되는 동시 에이전트의 일반적인 수) * (정렬 힙(해당 데이터베이스에서 정의됨))
정렬 성능과 메모리 사용 사이의 적절한 균형을 위해 이 매개변수를 조정하려면 벤치마킹 기법을 사용해야 합니다.
포스트 임계값 정렬( post_threshold_sorts ) 모니터 요소를 사용하여 정렬 활동을 추적하는 데 데이터베이스 시스템 모니터를 사용할 수 있습니다.
이 매개변수는 개별 정렬에 사용될 개인용 메모리 페이지의 최대수나, 공유 정렬에 사용될 공유 메모리 페이지의 최대수를 지정합니다. 개별 정렬의 경우, 이 매개변수는 에이전트 개인용 메모리에 영향을 줍니다. 공유 정렬의 경우, 이 매개변수는 데이터베이스 공유 메모리에 영향을 줍니다. 정렬마다 필요한 만큼 데이터베이스 관리 프로그램에 의해 할당되어 개별 정렬 힙이 있습니다. 정렬 힙은 데이터가 정렬되는 영역입니다. 옵티마이저에 의해 지정될 경우, 매개변수에 의해 지정된 힙보다 더 작은 힙이 옵티마이저에 의해 제공된 정보를 사용하여 할당됩니다.
권장사항: 정렬 힙(heap)으로 작업할 때 다음 사항을 고려하십시오.
쿼리가 정렬되거나 그룹화된 결과를 자주 요구하기 때문에, 정렬은 쿼리에 대해 자주 요구되고 적합한 정렬 힙(heap) 영역의 구성은 쿼리 성능에서 아주 중요한 문제입니다. 다음과 같은 경우에 정렬이 필요합니다.
정렬 작업은 두 단계로 이루어집니다.
9 정렬은 오버플로우 또는 비오버플로우 가 9 될 수 있습니다. 정렬된 9 데이터가 정렬이 수행될 때마다 할당되는 메모리 블록인 정렬 힙에 완전히 9 들어맞지 않을 경우, 데이터베이스의 임시 테이블로 오버플로우됩니다. 오버플로우하지 9 않는 정렬은 그렇지 않은 정렬보다 항상 더 잘 수행됩니다.
리턴은 파이프 또는 비파이프 가 될 수 있습니다. 정렬된 정보가 임시 테이블이 최종 정렬된 데이터 목록을 저장하지 않고 직접 리턴할 수 있는 경우, 파이프 정렬입니다. 정렬된 정보가 임시 테이블을 리턴해야 하는 경우, 비파이프 정렬입니다. 파이프 정렬은 항상 비파이프 정렬보다 더 잘 수행됩니다.
정렬에 영향을 미치는 요소
다음은 정렬 성능에 영향을 미치는 요소입니다.
일반적으로, 인스턴스에 걸쳐 사용 가능한 전체 정렬 메모리( sheapthres )를 과도한 페이징을 일으키지 않을 만큼 가능한 한 크게 만들어야 합니다. 정렬은 전적으로 정렬 메모리에서만 수행될 수 있으나 초과 페이지 스와핑을 발생시킬 수 있습니다. 이런 경우, 대량 정렬 힙(heap)의 이점을 잃게 됩니다. 이러한 이유로, 운영 체제 모니터를 사용하여 구성 매개변수 정렬을 조정할 때마다 시스템 페이징의 변경사항을 추적해야 합니다.
또한 파이프 정렬 시 응용프로그램이 해당 정렬과 연관되는 커서를 닫을 때까지 정렬 힙은 해제되지 않습니다. 파이프 정렬은 커서가 닫힐 때까지 메모리를 사용할 수 있습니다.
정렬 성능 관리 기법
정렬이 중요한 성능 문제점인 특정 응용프로그램 및 명령문을 식별하려면 다음을 수행하십시오.
데이터베이스 시스템 모니터와 벤치마킹 기법 사용은 sortheap 및 sheapthres 구성 매개변수를 설정하는 데 도움이 될 수 있습니다. 각 데이터베이스 관리 프로그램 및 해당 데이터베이스의 경우, 다음을 수행하십시오.
판별하기가 너무 어려우면 최대 정렬 힙(heap)의 80 퍼센트를 사용하십시오.
이것이 바람직한 초기 설정입니다. 그런 다음 벤치마크 기법을 사용하여 이 값을 조정할 수 있습니다.