본문 바로가기

Oracle/튜닝14

히스토그램(Histogram) (아래 출처의 글을 번역하고 테스트하여 정리한 것입니다.) 출처 : https://docs.oracle.com/en/database/oracle/oracle-database/19/tgsql/histograms.html#GUID-FFA0C0AF-3761-4829-995E-9AFA524F96CE 히스토그램 히스토그램은 테이블 열의 데이터 분포에 대한 더 자세한 정보를 제공하는 특수한 유형의 컬럼 통계입니다. "버킷"이라고 부르는 공간에 정렬된 값들을 넣습니다. NDV(Number of distinct values)와 데이터의 분포에 따라 데이터베이스는 히스토그램의 유형을 선택하게 됩니다. (경우에 따라 히스토그램을 생성할때 내부적으로 미리 지정된 수의 행을 샘플링하기도 합니다.) 유형은 아래와 같습니다. F.. 2024. 1. 4.
같은 SQLID 다른 PLAN (Histogram 차이) 운영 중에 일어나 해결한 것을 정리하였습니다. 바인드변수만 다르게 해서 동일한 SQLID로 수행되는 쿼리가 특정 바인드변수가 들어오면 끝나지 않고 오래걸리는 현상이 발생하였습니다. 확인해보니 오래걸릴 때에는 실행계획이 달라졌고, SQLID는 동일했었습니다. 해결으로는 해당 SQLID에 대해서는 무조건 같은 실행계획을 타게 profile을 이용하여 고정시켜줬고, 오래걸리는 쿼리도 빠르게 끝나게 되었습니다. 처리 후에 SQLID가 같은데 실행계획이 다르게 나오는 경우는 어떤경우인지 테스트를 통해 정리해보도록 하겠습니다. 시나리오 참고 : https://aprakash.wordpress.com/2011/02/07/same-sql_id-with-different-execution-plans/ Cursor_sha.. 2023. 12. 22.
플랜 고정해주는 sql profile disable/drop 이전 글 https://bae9086.tistory.com/458 [DBMS_SQLTUNE] Profile로 SQL변경없이 실행계획 변경해보기 출처 : http://www.gurubee.net/article/58105 SQL_PROFILE 사용 방법 10g부터 소개된 SQL_PROFILE의 기능에 대한 소개를 하고자 한다. SQL_PROFILE이란, 특정 SQL_ID의 실행계획이 비효율적으로 생성될 경우, SQL 구문 변. bae9086.tistory.com 이전 글에서 profile을 생성하여 sql변경없이 plan을 변경할 수 있는 방법에 대해서 설명하였습니다. 이렇게 생성한 profile을 사용하지 않게 disable시키거나, drop 시키는 명령어를 정리합니다. 확인 SQL> select * fr.. 2023. 12. 18.
공간관리와 Direct Path Load 해당 내용의 출처의 블로그를 주로 번역하여 정리하였습니다. 출처 : https://blogs.oracle.com/optimizer/post/space-management-and-oracle-direct-path-load Space Management and Direct Path Load This post describes how extents are managed during direct path load operations. blogs.oracle.com 제가 이글을 정리하게 된 이유는 실행계획에서 아래와 같은 표현을 발견하고 그것이 무엇인지 정리하다가 입니다. | 4 | PX RECEIVE | | 1 | 2 | 13 | +26 | 12 | 24M | | | | | . | 0.37 | Cpu (3) |.. 2023. 5. 10.