데이터웨어 하우징-튜닝
데이터웨어 하우스는 계속 진화하고 있으며 사용자가 앞으로 어떤 쿼리를 게시할지 예측할 수 없습니다. 따라서 데이터웨어 하우스 시스템을 조정하는 것이 더 어려워집니다. 이 장에서는 성능, 데이터로드, 쿼리 등과 같은 데이터웨어 하우스의 다양한 측면을 조정하는 방법에 대해 설명합니다.
데이터웨어 하우스 조정의 어려움
데이터웨어 하우스를 조정하는 것은 다음과 같은 이유로 어려운 절차입니다.
데이터웨어 하우스는 동적입니다. 그것은 결코 일정하지 않습니다.
사용자가 앞으로 어떤 쿼리를 게시 할 것인지 예측하는 것은 매우 어렵습니다.
비즈니스 요구 사항은 시간에 따라 변경됩니다.
사용자와 프로필은 계속 변경됩니다.
사용자는 한 그룹에서 다른 그룹으로 전환 할 수 있습니다.
웨어 하우스의 데이터로드도 시간에 따라 변경됩니다.
Note − 데이터웨어 하우스에 대한 완전한 지식을 갖는 것은 매우 중요합니다.
성능 평가
다음은 객관적인 성능 측정 목록입니다.
- 평균 쿼리 응답 시간
- 스캔 속도
- 일일 쿼리 사용 시간
- 프로세스 당 메모리 사용량
- I / O 처리 속도
다음은 기억해야 할 사항입니다.
SLA (서비스 수준 계약)에서 측정 값을 지정해야합니다.
응답 시간이 이미 필요한 것보다 낫다면 응답 시간을 조정하는 것은 소용이 없습니다.
성과를 평가하는 동안 현실적인 기대치를 갖는 것이 필수적입니다.
또한 사용자가 실현 가능한 기대치를 가지고 있어야합니다.
사용자로부터 시스템의 복잡성을 숨기려면 집계 및보기를 사용해야합니다.
사용자가 조정하지 않은 쿼리를 작성할 수도 있습니다.
데이터로드 조정
데이터로드는 야간 처리의 중요한 부분입니다. 데이터로드가 완료 될 때까지 다른 것은 실행할 수 없습니다. 이것은 시스템의 진입 점입니다.
Note− 데이터 전송이 지연되거나 데이터 도착이 지연되면 전체 시스템에 심각한 영향을 미칩니다. 따라서 먼저 데이터로드를 조정하는 것이 매우 중요합니다.
아래에서 설명하는 데이터로드를 조정하는 다양한 방법이 있습니다.
매우 일반적인 접근 방식은 SQL Layer. 이 접근 방식에서는 정상적인 검사와 제약을 수행해야합니다. 데이터가 테이블에 삽입되면 코드가 실행되어 데이터를 삽입 할 충분한 공간이 있는지 확인합니다. 충분한 공간을 사용할 수없는 경우 이러한 테이블에 더 많은 공간을 할당해야 할 수 있습니다. 이러한 검사는 수행하는 데 시간이 걸리며 CPU에 많은 비용이 듭니다.
두 번째 접근 방식은 이러한 모든 검사 및 제약 조건을 우회하고 데이터를 미리 서식이 지정된 블록에 직접 배치하는 것입니다. 이러한 블록은 나중에 데이터베이스에 기록됩니다. 첫 번째 접근 방식보다 빠르지 만 전체 데이터 블록에서만 작동 할 수 있습니다. 이로 인해 공간 낭비가 발생할 수 있습니다.
세 번째 방법은 이미 테이블이 포함 된 테이블에 데이터를로드하는 동안 인덱스를 유지할 수 있다는 것입니다.
네 번째 방법은 이미 데이터가 포함 된 테이블의 데이터를로드하려면 drop the indexes & recreate them데이터로드가 완료되면 세 번째 접근 방식과 네 번째 접근 방식 사이의 선택은 이미로드 된 데이터의 양과 다시 빌드해야하는 인덱스 수에 따라 다릅니다.
무결성 검사
무결성 검사는로드 성능에 큰 영향을 미칩니다. 다음은 기억해야 할 사항입니다.
높은 처리 능력이 필요하므로 무결성 검사를 제한해야합니다.
데이터로드의 성능 저하를 방지하기 위해 소스 시스템에 무결성 검사를 적용해야합니다.
쿼리 튜닝
데이터웨어 하우스에는 두 종류의 쿼리가 있습니다.
- 고정 쿼리
- 임시 쿼리
고정 쿼리
고정 쿼리는 잘 정의되어 있습니다. 다음은 고정 쿼리의 예입니다.
- 정기 보고서
- 미리 준비된 쿼리
- 일반적인 집계
데이터웨어 하우스에서 고정 쿼리를 튜닝하는 것은 관계형 데이터베이스 시스템에서와 동일합니다. 유일한 차이점은 쿼리 할 데이터의 양이 다를 수 있다는 것입니다. 고정 쿼리를 테스트하는 동안 가장 성공적인 실행 계획을 저장하는 것이 좋습니다. 이러한 실행 계획을 저장하면 실행 계획이 변경되기 때문에 변화하는 데이터 크기와 데이터 왜곡을 파악할 수 있습니다.
Note − 팩트 테이블에 대해 더 많은 작업을 수행 할 수는 없지만 차원 테이블 또는 집계를 처리하는 동안 일반적인 SQL 조정, 저장 메커니즘 및 액세스 방법 모음을 사용하여 이러한 쿼리를 조정할 수 있습니다.
임시 쿼리
임시 쿼리를 이해하려면 데이터웨어 하우스의 임시 사용자를 아는 것이 중요합니다. 각 사용자 또는 사용자 그룹에 대해 다음을 알아야합니다.
- 그룹의 사용자 수
- 정기적으로 임시 쿼리를 사용하는지 여부
- 임시 쿼리를 자주 사용하는지 여부
- 알 수없는 간격으로 가끔 임시 쿼리를 사용하는지 여부.
- 실행하는 경향이있는 최대 쿼리 크기
- 실행하는 경향이있는 평균 쿼리 크기
- 기본 데이터에 대한 드릴 다운 액세스가 필요한지 여부
- 하루에 경과 된 로그인 시간
- 일일 사용량이 가장 많은 시간
- 피크 시간당 실행하는 쿼리 수
Points to Note
사용자의 프로필을 추적하고 정기적으로 실행되는 쿼리를 식별하는 것이 중요합니다.
수행 된 튜닝이 성능에 영향을주지 않는 것도 중요합니다.
자주 실행되는 유사 및 임시 쿼리를 식별합니다.
이러한 쿼리가 식별되면 데이터베이스가 변경되고 해당 쿼리에 대해 새 인덱스를 추가 할 수 있습니다.
이러한 쿼리가 식별되면 효율적으로 실행되는 쿼리에 대한 새 집계를 특별히 만들 수 있습니다.