본문 바로가기

IT477

같은 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.
[통계정보 export/import]다른 테이블에 통계정보 복사 운영중에 원본테이블을 두고 CTAS 등으로 새로운 테이블을 만들어서 작업을 해야할 때가있습니다. 저의 경우에는 임시테이블에 작업 후에 원본과 RENAME하여 원본테이블과 바꿔치기하는 작업까지 해야했는데, 이때 크기가 큰 테이블의 경우에는 통계정보 수집시에 시간이 오래걸리고, 기존 원본 테이블에는 통계정보가 있는 경우, 통계정보의 export/import 기능을 사용하여 통계정보의 복사가 가능합니다. 이름이 다른경우에는 import를 하더라도 통계정보가 이식되지 않고 , 통계정보를 export받은 테이블을 update로 이름을 바꿔줘야 됩니다. 참고한 자료로는 아래의 SR입니다. 아래 SR은 스키마까지 변경될 때를 나타내었지만 저는 동일스키마로 진행하였습니다. 2701368.1.How To Transfer.. 2023. 12. 14.
PostgresSQL 아키텍쳐 PostgreSQL은 클라이언트 - 서버 모델 기반입니다. Postmaster라는 메인 프로세스와 파생된 프로세스들로 구성되어 있습니다. 간단히 아키텍쳐를 설명한 그림이 있어서 첨부하였습니다. 출처 : https://www.cloudduggu.com/postgresql/architecture/ OS에서 확인한 PostgreSQL의 프로세스. [root@ysbae ~]# ps -ef |grep postgres postgres 970 1 0 14:45 ? 00:00:00 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432 postgres 972 970 0 14:45 ? 00:00:00 postgres: logger process postgres 974 970 0 14:45.. 2023. 11. 30.