2014-11-18 2 views
0

오라클 11g R2에는 약 90,000 개의 공간 (지리적) 레코드가 들어있는 테이블이 있습니다. 수백 건의 레코드가 사용자의 나쁜 습관으로 인해 복제됩니다.중복 레코드 제거 후 오라클 성능

복제본을 제거하기 전후에 데이터베이스/테이블의 성능을 측정 할 여지가 있습니까? 이 임시 테이블에서 중복 행을 삭제 한 후

+0

_you_ measure _performances_는 어떻게됩니까? Oracle 인스턴스가 제공 한 전체 쿼리 수/초를 측정함으로써? 아니면 _that_ 테이블에 대한 매우 구체적인 쿼리에 대해서만? –

답변

0
  • 난,
  • (또는 소스를 그 egal)를
  • II ( 물론 인덱스) 소스 테이블에서 임시 테이블을 생성 iii, 설명을 참조 이러한 테이블을 모두 계획하고 대답을 얻을 것이다
2

90000 레코드 테이블은 아주 작은 테이블입니다. 중복의 수백은 1 % 미만입니다 - 그것은 또한 "쓰레기"의 아주 작은 금액입니다. 이 금액은 응용 프로그램의 디자인이 좋은 경우 큰 성능 문제를 일으킬 수 없습니다. 나는 "이전"과 "이후"사이의 성능에서 중요한 차이를 보여주는 테스트를 작성할 수 있다고 생각하지 않습니다.

또한 중복을 삭제 한 다음 향후 이러한 상황을 방지하기 위해 고유 제한 조건을 만들 수 있습니다.

1

Oracle 데이터베이스의 전체 성능을 측정하는 한 가지 방법은 여러 측정 값 (CPU, IO, 메모리 등)을 표시하는 Grid Control (엔터프라이즈 관리자라고도 함)의 기능을 사용하는 것입니다.

또 다른 방법은 SET TIMING ON으로 sqlplus에서 몇 가지 일반적인 쿼리를 실행하고 제거 전과 제거 후 응답 시간을 비교하는 것입니다. 이것은 "성능"에 의해 이러한 쿼리의 경과 시간을 의미한다고 가정합니다.

드미트리 (Dmitry)와 같이 90,000 개의 행은 매우 작은 테이블이며 중복 행이 아주 적은 것으로 나타났습니다. 이러한 복제본의 존재 또는 부재는 눈에 띄는 차이를 만들어 내지 않을 것입니다.