[Oracle] 테이블 통계정보 손실로 인한 배치 성능 저하 문제 해결 사례
·
Database/Oracle
개요대규모 데이터를 다루는 시스템에서 데이터베이스 최적화는 성능 유지의 핵심입니다. 최근 백업 시간 단축을 위해 데이터를 정제하는 과정에서, 역설적으로 배치 작업 성능이 급격히 저하되는 이슈를 겪었습니다. 이번 포스팅에서는 테이블 통계정보의 불일치가 시스템에 어떤 영향을 주는지, 그리고 이를 어떻게 해결했는지 공유합니다.문제 상황: "백업을 최적화했더니 배치가 느려졌다?"1. 시스템 배경저희 시스템은 다음과 같은 데이터 처리 파이프라인으로 구성되어 있습니다.Source: MSSQL (실시간 CRM 데이터)Data Warehouse: Oracle 데이터베이스에 매일 정해진 시간에 스냅샷 적재ETL: MSSQL → Oracle (스키마 및 형변환 적재)배치 처리: 변환된 데이터를 기반으로 다단계 집계 프로세..
[Oracle] CREATE TABLE AS SELECT (예제 포함)
·
Database/Oracle
CREATE 테이블명 AS SELECT문 SELECT 문의 결과를 새로운 테이블로 생성합니다. [예제1 - FIRST_NAME이 'David'인 데이터를 BK_EMPLOYEES_DAVID 테이블을 생성하여 삽입하기] 아래와 같은 구조를 가진 테이블이 있습니다. 위 테이블에서 FIRST_NAME이 'David'인 데이터들을 구하는 SELECT 문입니다. SELECT * FROM EMPLOYEES WHERE FIRST_NAME = 'David' ; 위 SELECT문의 결과를 BK_EMPLOYEES_DAVID라는 테이블로 생성해보겠습니다. BK_EMPLOYEES_DAVID 테이블을 CREATE하고 INSERT하는 구문을 실행하는 방법도 존재하지만 CREATE AS SELECT 구문을 통해 빠르게 테이블을 생성..
[Oracle] 오라클 비밀번호 만료 오류(Oracle password has expired)
·
Database/Oracle
[에러 발생] 'Oracle password has expired'가 발생하였습니다. 기본적으로 오라클은 180일이 지나면 자동 만료가 된다고 합니다. [에러 해결] 1. CMD 창을 열어 오라클DB에 접속합니다. sqlplus / as sysdba C:\Users\user>sqlplus / as sysdba SQL*Plus: Release 11.2.0.2.0 Production on 금 9월 8 14:22:44 2023 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production 2. 비밀번호를 변경합니다. A..
[Oracle] 오라클 프로시저 JOB으로 실행하기
·
Database/Oracle
[프로시저를 JOB으로 실행하는 방법] 프로시저 P_TEST를 JOB으로 즉시 실행하는 방법입니다. OUTPUT을 통해 JOB의 번호를 출력할 수 있습니다. DECLARE V_JOBNO NUMBER; BEGIN BEGIN DBMS_JOB.SUBMIT(V_JOBNO, 'P_TEST();', SYSDATE, NULL); COMMIT; END; DBMS_OUTPUT.PUT_LINE(V_JOBNO); END;
[Oracle] 오라클(XE) 11g 설치 | 계정 설정 | DBeaver 연결하기
·
Database/Oracle
[ 오라클(XE) 11g 설치 ] 1. 설치 파일 다운로드 아래 링크에서 'Oracle Database 11g Express Edition' 설치 파일을 다운로드 합니다. XE Prior Release Archive Getting Started: Support Oracle Database Express Edition (XE) is a community supported edition of the Oracle Database family. Please go to the Oracle Database XE Community Support Forum for help, feedback, and enhancement requests. Note: Oracle Support Ser www.oracle.com Oracl..
[Oracle] comment로 테이블, 컬럼 찾기
·
Database/Oracle
테이블 comment 또는 컬럼 comment로 테이블을 조회하는 방법을 알아보겠습니다. 테이블을 찾을 때 정말 유용하답니다 ~ :) [테이블 comment로 테이블 찾기] - 전체 테이블 중에서 comment가 '%회원%'인 테이블을 조회합니다. SELECT TABLE_NAME , TABLE_TYPE , COMMENTS FROM USER_TAB_COMMENTS WHERE COMMENTS LIKE '%회원%'; [컬럼 comment로 테이블 찾기] - 전체 테이블의 컬럼 중에서 comment가 '%이름%'인 테이블을 조회합니다. SELECT TABLE_NAME , COLUMN_NAME , COMMENTS FROM USER_COL_COMMENTS WHERE COMMENTS LIKE '%이름%';
[Oracle] 오라클 날짜, 한글 요일 구하기 (Feat. TO_CHAR)
·
Database/Oracle
지난 번에 TO_CHAR 함수를 사용하여 천단위 구분기호를 표시하는 방법을 알아봤습니다. [Oracle] 천단위 구분기호 출력하는 방법 오라클에서 숫자데이터를 천단위마다 ','로 구분하여 조회하는 방법을 알아보겠습니다. 방법은 크게 2가지로 나눌 수 있습니다. 방법 1. TO_CHAR 사용하기 참고. TO_CHAR 함수란? 👉 날짜, 숫자 등의 soo-vely-dev.tistory.com 이번에는 TO_CHAR를 활용하여 날짜와 한글 요일(ex) 월요일)을 구하는 방법을 알아보겠습니다 ! [ TO_CHAR ] 참고. TO_CHAR 함수란? 👉 날짜, 숫자 등의 값을 문자열로 변환하는 함수 사용법 TO_CHAR(날짜, 포맷) 요일 구하기 1. 'DAY' 월요일, 화요일, 수요일, 목요일, 금요일, 토요일,..
[Oracle] 오라클 TRUNC 함수 사용법 (날짜, 시간, 소수점 절사하기)
·
Database/Oracle
[ TRUNC 함수 ] 오라클의 기본적인 함수인 TRUNC함수에 대해 알아보겠습니다. 단순 절사 기능 외에 시간, 날짜, 소수점 절사 등 다양한 옵션으로 활용이 가능합니다. - 사용법 TRUNC("값", "옵션"); TRUNC(날짜, 옵션) 옵션이 없는 경우 기본적으로 시간을 절사합니다. 옵션을 입력한 경우 입력한 부분 이하 부분을 "00"으로 초기화 합니다. - 시간 절사 WITH T01 AS ( SELECT SYSDATE AS TODAY FROM DUAL ) SELECT TODAY AS "현재 날짜" , TRUNC(TODAY) AS "시간 절사" , TRUNC(TODAY, 'DD') AS "시간 절사" , TRUNC(TODAY, 'HH') AS "분, 초 절사" , TRUNC(TODAY, 'MI') ..