본문 바로가기

오라클3

DB 오라클 - 자주 사용하는 힌트절 이번 글에서는 간단히 자주 사용되는 오라클 힌트 절에 대해서 작성해 볼 것이다. '개발자를 위한 인덱스 생성과 SQL 작성 노하우(이병국)'을 참고하여 작성하였다. DB에서 옵티마이저는 최적의 실행계획을 결정한다. 하지만 그렇다고 해서 옵티마이저가 만능이라는 것은 아니다. 옵티마이저도 잘못된 SQL이나 부정확한 통계정보로 인하여 실수도 할 수 있다. 이럴 때는 힌트 절을 통해 잘못된 실행계획을 바로 잡을 수 있다. 즉, 힌트 절은 옵티마이저의 실수를 만회할 수 있는 용도로 사용할 수 있는 것이다. 옵티마이저에 대한 내용은 https://khdscor.tistory.com/m/52 를 참고하길 바란다. 데이터베이스 옵티마이저에 대한 간단 설명 데이터베이스를 사용하다 보면 여러 가지 인덱스를 만들어 놓는 경.. 2022. 4. 30.
오라클 DB - 자주 접하는 에러 메시지 이 글에서는 간단하게 오라클에서 간단하게 발생하는 에러 메시지들을 살펴볼 것이다. '개발자를 위한 인덱스 생성과 SQL(이병국)'을 참고하였다. 1. ORA-00001: 유일성 제약조건에 위배됩니다 오라클 에러메시지 중에서 개발자가 가장 자주 접하는 문제이다. 테이블에 PK가 있거나 UNIQUE UNDEX가 있을 때, 중복해서 INSERT를 사용하면 발생하는 에러이다. 2. ORA-00942: 테이블 또는 뷰가 존재하지 않습니다 오타로 인해 발생할 수 있는 에러이고 실제로 테이블이 생성됐는지도 확인이 필요하다. 개발계와 운영계를 따로 관리하는 환경이라면, 실제 해당 테이블에 대한 생성 유무를 착각할 수도 있기 때문이다. 또한 권한이 없어서 발생하는 경우도 있다. 이런 경우 DBA에게 권한을 요청하거나 아.. 2022. 4. 25.
데이터베이스 옵티마이저에 대한 간단 설명 데이터베이스를 사용하다 보면 여러 가지 인덱스를 만들어 놓는 경우가 많다. 어느 테이블에서 무엇인가 조회를 하는 방법은 그 테이블에 사용되는 다양한 인덱스 중 어느 인덱스를 사용할지, 조인을 했다면 어느 테이블부터 조회할지 등 실행 방법에는 다양한 경우가 있을 수 있다. 이러한 방법 중에 최적의 방법을 실행하는 것이 가장 효율적일 것이다. 여기서 어떤 실행에 대해서 최적의 루트를 계산해 실행하는 것이 '옵티마이저'이다. 옵티마이저에는 크게 CBO(Cost Based Optimizer) 즉, 비용 기반 옵티마이저와 RBO(Rule Based Optimizer) 즉, 규칙 기반 옵티마이저로 두가지로 나뉠 수 있다. RBO는 규칙 기반 옵티마이저로서 미리 정해진 우선 순위 규칙에 따라 접근 경로를 결정한다. .. 2022. 4. 18.