Oracle 10g로 업그레이드 시 고려사항
[운영 고려사항]
1. DB Object 구조 파악
- User, Segment type, size , object_type, privilege , column type
2. 사이징
- 마이 그레이션 데이터 사이징, OS 파일 사이즈 제한 있는지
3. 하드웨어 사양
- Distribute Database Option의 Operation이 가능한지, 네트워크 스피드는 충분히 보장되는지, DownTime을 얼마로 예상되는지
4. 기타
- 스토리지 운영 정책, 어플리케이션(배치 포함), 데이터 마이그레이션 정합성 체크, 방법들, 쿼리 튜닝 지침
- DB 장비 간의 연동 인터페이스 파악(DBLInk, JDBC, SQL*NET), 성능 테스트는 어떻게?
- DB장비 환경 설정(커널-Process, Open Files개수, 어라클 설정)
- 파티셔닝 고려, 통계 정보 운영 방법
[쿼리 튜닝 포인트]
1. group by절에 의한 Grouping Column순으로 Sorting 안되는 문제
- 기존에는 Sort알고리즘으로 Sort하였으나 10g R2부터는 Hash-based 방식으로 진행되어서 그런 현상 발생함
- 해결책 : init.ora "_gby_hash_aggregation_enabled"=FALSE (New 방식 사용 안함)
2. RULE 힌트 처리된 SQL의 문제
- 10g New Version에서는 기존버전에서/*+ RULE */ 로 힌트처리된 구문이 의도대로 처리되지 않고, CBO의플랜으로 풀릴 수 있음.
- 해결책 : 튜닝을 통해 최적화 필요함(주로 Cadinalty가 큰 인덱스일 경우 인덱스 힌트를 명시할 필요가 있음 - 통계 정보가 인덱스를 안타게 할 가능성이 많음)
3. Connect By 절의 실행 문제
- 10g New Version에서는 기존 버전(9i 이전버전) 에서 사용하는 connect by 절이 제대로 실행되지 않을 수 있음.
- 해결책 아래 참조
4. Toad Old version과의 문제
- Oracle 10g 로 업그레이드 후 Objects 가 이유없이 disable 되는 Toad 버전 문제
- 해결책 : Toad 버전을8.6.1
1. DB Object 구조 파악
- User, Segment type, size , object_type, privilege , column type
2. 사이징
- 마이 그레이션 데이터 사이징, OS 파일 사이즈 제한 있는지
3. 하드웨어 사양
- Distribute Database Option의 Operation이 가능한지, 네트워크 스피드는 충분히 보장되는지, DownTime을 얼마로 예상되는지
4. 기타
- 스토리지 운영 정책, 어플리케이션(배치 포함), 데이터 마이그레이션 정합성 체크, 방법들, 쿼리 튜닝 지침
- DB 장비 간의 연동 인터페이스 파악(DBLInk, JDBC, SQL*NET), 성능 테스트는 어떻게?
- DB장비 환경 설정(커널-Process, Open Files개수, 어라클 설정)
- 파티셔닝 고려, 통계 정보 운영 방법
[쿼리 튜닝 포인트]
1. group by절에 의한 Grouping Column순으로 Sorting 안되는 문제
- 기존에는 Sort알고리즘으로 Sort하였으나 10g R2부터는 Hash-based 방식으로 진행되어서 그런 현상 발생함
- 해결책 : init.ora "_gby_hash_aggregation_enabled"=FALSE (New 방식 사용 안함)
2. RULE 힌트 처리된 SQL의 문제
- 10g New Version에서는 기존버전에서/*+ RULE */ 로 힌트처리된 구문이 의도대로 처리되지 않고, CBO의플랜으로 풀릴 수 있음.
- 해결책 : 튜닝을 통해 최적화 필요함(주로 Cadinalty가 큰 인덱스일 경우 인덱스 힌트를 명시할 필요가 있음 - 통계 정보가 인덱스를 안타게 할 가능성이 많음)
3. Connect By 절의 실행 문제
- 10g New Version에서는 기존 버전(9i 이전버전) 에서 사용하는 connect by 절이 제대로 실행되지 않을 수 있음.
- 해결책 아래 참조
SQL> SELECT LPAD (' ', LEVEL * 2,'*'), E.EMPNO, E.MGR, E.DEPTNO, E.JOB, LEVEL,
SUM (E.SAL) OVER (PARTITION BY E.DEPTNO) SAL_OVER_DEPT
FROM EMP E
START WITH MGR IS NULL
CONNECT BY PRIOR EMPNO = MGR
ORDER SIBLINGS BY EMPNO
ORDER SIBLINGS BY EMPNO;
*
ERROR at line 11:
ORA-30929: ORDER SIBLINGS BY clause not allowed here
SQL> SELECT LPAD (' ', LV * 2,'*'), EMPNO, MGR, DEPTNO, JOB, LV, SUM ( SAL )
OVER ( PARTITION BY DEPTNO ) SAL_OVER_DEPT
FROM (
SELECT ROWNUM RN, LEVEL LV, E.* FROM EMP E
START WITH MGR IS NULL
CONNECT BY PRIOR EMPNO = MGR
ORDER SIBLINGS BY EMPNO
) ORDER BY RN
4. Toad Old version과의 문제
- Oracle 10g 로 업그레이드 후 Objects 가 이유없이 disable 되는 Toad 버전 문제
- 해결책 : Toad 버전을8.6.1








