IT/Oracle(67)
-
오라클 테이블 별 용량 확인 SQL 쿼리
테이블 별 용량을 확인하는 SQL 쿼리는 사용하는 데이터베이스에 따라 약간씩 다릅니다. 아래는 주요 데이터베이스에 대한 쿼리 예시입니다.1. OracleSELECT segment_name AS table_name, segment_type, bytes / 1024 / 1024 AS size_in_mbFROM user_segmentsWHERE segment_type = 'TABLE'ORDER BY size_in_mb DESC; 2. MySQL • MySQL에서는 information_schema.tables를 이용합니다SELECT table_schema AS database_name, table_name, ROUND(data_length / 1024 ..
2025.02.19 -
MERGE 문을 UPDATE 문으로 변경
MERGE 문을 UPDATE 문으로 변경하려면 조건에 맞는 행을 갱신하는 UPDATE 구문으로 바꾸면 됩니다.다만, MERGE 문은 매칭 시 업데이트와 비매칭 시 삽입(INSERT)을 동시에 처리하므로, 이를 UPDATE + INSERT로 나누어 처리해야 합니다.아래에 변환 방법을 단계별로 설명합니다1. 기존 MERGE 문 구조다음과 같은 MERGE 문이 있다고 가정합니다:MERGE INTO target_table tUSING source_table sON (t.id = s.id)WHEN MATCHED THEN UPDATE SET t.value = s.value, t.updated_at = SYSDATEWHEN NOT MATCHED THEN INSERT (id, value, created_at..
2025.02.18 -
오라클 Lock
Oracle 데이터베이스에서 락(Lock)은 동시성 제어를 위해 사용되는 메커니즘으로, 여러 사용자가 동일한 데이터에 동시에 접근할 때 데이터의 일관성과 무결성을 보장합니다. 락은 주로 트랜잭션이 동시에 발생할 때 데이터 충돌을 방지하는 역할을 합니다.Oracle 락(LOCK) 정의락(Lock)은 다중 사용자 환경에서 데이터의 무결성을 보장하기 위해 데이터베이스 객체(테이블, 행 등)에 설정하는 메커니즘입니다데이터 변경 중 다른 사용자가 해당 데이터에 접근하거나 변경하지 못하도록 제한합니다.DML, DDL, 동시성 제어, 트랜잭션 관리 시 필수적으로 사용됩니다.Oracle 락의 종류 및 특징A. 락 범위에 따른 분류1. Row-Level Lock (행 단위 락)특징: 테이블의 특정 행(Row)에만 락이 ..
2025.02.16 -
PL/SQL Function / Procedure 실행 오류 확인 방법
오라클에서 PL/SQL FUNCTION 또는 PROCEDURE가 실행 중 오류를 발생시키는 경우, 해당 실행 오류를 확인하는 방법은 다음과 같습니다:1. EXCEPTION 블록 사용 : 오라클 PL/SQL 블록에서 발생하는 실행 오류를 확인하려면 EXCEPTION 블록을 사용하여 오류 메시지를 캡처하고 출력하거나 로그에 기록할 수 있습니다.DECLARE result NUMBER;BEGIN -- 함수 호출 result := my_function(10); -- 결과 출력 DBMS_OUTPUT.PUT_LINE('Result: ' || result);EXCEPTION WHEN OTHERS THEN -- 오류 메시지 출력 DBMS_OUTPUT.PUT_LIN..
2025.02.15 -
정적 SQL(Static SQL)과 동적 SQL(Dynamic SQL) 비교
구분정적 SQL (Static SQL)동적 SQL (Dynamic SQL)정의SQL 문이 미리 정의되고 컴파일된 후 실행되는 SQL실행 시점에서 SQL 문이 생성되고 실행되는 SQLSQL 문 생성 시점애플리케이션 개발 또는 컴파일 시점애플리케이션 실행 시점실행 방식미리 컴파일된 SQL 문을 실행실행 시점에서 SQL 문을 조합하여 실행보안SQL 인젝션에 강함 (미리 정의된 쿼리 사용)SQL 인젝션 위험이 있음 (입력값을 직접 조합할 경우)성능일반적으로 빠름 (미리 컴파일된 계획 사용)비교적 느림 (매번 SQL 구문을 분석하고 실행 계획을 생성)유연성고정된 SQL 문만 실행 가능다양한 조건과 동적으로 변경되는 SQL 실행 가능사용예시정적 SQL정해진 구조의 SQL 문을 실행할 때 사용성능이 중요한 트랜잭션 ..
2025.02.15 -
오라클 UNDO 최소화 및 데이터 저장 전략
UNDO를 최소화하면서 테이블을 하루에 한 번 업데이트, 삭제, 그리고 신규 데이터 삽입으로 현행화를 유지하는 최적화된 방법은 다음과 같습니다. 이 작업을 효율적으로 수행하려면 MERGE 문과 테이블 파티셔닝 또는 임시 테이블을 활용할 수 있습니다.1. MERGE를 이용한 UPSERT와 DELETE오라클의 MERGE 문은 기존 데이터의 업데이트와 새로운 데이터의 삽입을 한 번의 SQL 문으로 처리할 수 있습니다. 삭제 작업은 별도로 수행합니다.데이터 흐름1. 임시 테이블 (STAGING_TABLE): 외부에서 데이터를 로드하여 비교의 기준이 되는 임시 테이블.2. MERGE:• STAGING_TABLE과 대상 테이블(TARGET_TABLE)을 비교하여 업데이트 및 삽입 처리.3. DELETE:• STAG..
2025.02.15