'UNDO 테이블스페이스 사용량 증가'에 해당되는 글 1건
- 2023.12.06 [오라클] UNDO 사용량 증가 SQL 확인 방법 2
반응형
UNDO 테이블스페이스 사용량 증가로 인한 문제점 및 SQL 확인 방법
작업 환경
OS: Oracle Linux 8.9
DB: Oracle 19c
오라클 UNDO 사용량이 갑자기 크게 증가할 때 원인을 분석하는 방법
- UNDO 사용량을 확인합니다.<
- UNDO 사용량이 갑자기 증가되는 상황은 데이터 변경이 과도하게 많이 발생할 때 자주 나타납니다.
- 문제가 발생된 SQL을 확인하고 SQL 로직 개선 필요.
- 한번에 대량의 데이터 변경을 한다면 LOOP를 이용해 여러개로 쪼개서 (예:만건 단위) COMMIT 하면서
처리하면 UNDO 사용량을 줄일수 있습니다.
SQL 스크립트:
-- UNDO 전체 사이즈 확인 SELECT TABLESPACE_NAME, FILE_NAME, ROUND(BYTES/1024/1024/1024,2) AS "SIZE_GB" FROM DBA_DATA_FILES WHERE TABLESPACE_NAME = 'UNDOTBS1'; -- UNDO 사용량 분석 -- UNDO는 FREE SPACE로 확인하지 않고 EXPIRED, UNEXPIRED로 분석합니다. -- EXPIRED 공간이 충분한지 확인 SELECT A.TABLESPACE_NAME, A.STATUS, ROUND(SUM(A.BYTES/1024/1024/1024),2) AS "USED_GB" FROM DBA_UNDO_EXTENTS A, DBA_TABLESPACES B WHERE 1=1 AND A.TABLESPACE_NAME = B.TABLESPACE_NAME AND B.CONTENTS = 'UNDO' GROUP BY A.TABLESPACE_NAME, A.STATUS ORDER BY 1, 2; -- UNDO 사용량이 높은 SQL 찾기 -- 담당자와 상의 후 작업을 일단 멈추고 문제가 발생한 부분을 찾아 개선한다. -- 문제 발생 원인은 CASE BY CASE 이지만 대량 데이터 변경으로 인한 문제일 확율이 매우 높음 SELECT MAXQUERYID AS "SQL_ID", SUM((ACTIVEBLKS*8)/1024) AS "ACTIVE_BLOCK", MAX((UNEXPIREDBLKS*8)/1024) FROM V$UNDOSTAT WHERE MAXQUERYID IS NOT NULL GROUP BY MAXQUERYID ORDER BY 2 DESC; |
반응형
'Oracle Database > Oracle Admin' 카테고리의 다른 글
[오라클] Oracle Version 확인 방법 (0) | 2023.12.06 |
---|---|
[오라클] 테이블스페이스 관리 방법 (0) | 2023.12.06 |
[오라클] CPU 사용량 분석 SQL (4) | 2023.12.06 |
[오라클] AWR 설정(수집 주기 변경) (0) | 2020.10.15 |
[오라클] Oracle 11g RAC PC로 구성하기 2 (RAC용) (0) | 2012.05.10 |