본문 바로가기
반응형

4. Database/4_3 Oracle 기본30

[Oracle] 오라클 Lock(1) enq: TX - row lock contention [Oracle] 오라클 Lock(1) enq: TX - row lock contention 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ [Oracle] Lock 첫번째 TX - row lock contention ] 입니다. : ) - 오라클 모니터링을 하다보면 Active 세션 중 다음과 같은 락발생 현황을 종종 볼 수 있다. 이와 관련된 내용을 알아 보도록 하자. 0.Oracle Lock - 사실 오라클 락은 매우 다양한 종류가 있지만, 이번엔 간단히 자주 볼수있는 Lock의 종류중 하나인 TX Lock에 대해 알아 보려 한다. TX Lock과 관련된 내용을 천천히 알아보자. 1) Enqueue Lock - 테이블, 트랜젝션, 테이블스페이스, 시퀀스, Temp 세그먼트 등의 공유 리소스에 대한 액세.. 2020. 8. 31.
[Oracle] PL/SQL 기초9 - 예외처리(Exception) [Oracle] PL/SQL 기초9 - 예외처리(Exception) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ [Oracle] PL/SQL 기초 - 예외처리(Exception) ] 입니다. : ) 0.Oracle PL/SQL 예외 처리 (Exception Handling) 1) 컴파일 에러(Compilation Error) - PL/SQL 블록을 Parsing, 컴파일 하는동안 문법적인 오류로 발생 하는 동안 발생하는 에러 2) 런타임 에러 (Run-Time Error) - PL/SQL 블록을 실행하는 도중 발생하는 에러, 이를 Exception이라고 한다. - 즉 오라클에서는 런타임 에러를 예외(Exception)라고 부른다. 이 예외 처리에 대해 오늘은 정리해 보려고 한다. - 일반적인 SQL에서.. 2020. 8. 2.
[Oracle] PL/SQL 기초8 - 레코드(RECORD) [Oracle] PL/SQL 기초8 - 레코드(RECORD) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ [Oracle] PL/SQL 기초 - 레코드(Record) ] 입니다. : ) 혹시 이해가 안되는 내용이 많을 수 있으니, 하단의 예제부터 보는것도 추천 한다. 0.Oracle Record ▶ 0. 레코드(Record)란? - PL/SQL에서 제공하는 테이블 형태의 데이터 타입 이다. - 여러개의 데이터 타입을 갖는 변수들의 집합.(일반 빌트인 타입으로 변수 선언시 1개의 값만 가질 수 있다.) - 논리적 단위로서 필드 집합을 처리할 수 있도록 해준다. - 스칼라(%type/%rowtype), RECORD, 또는 PL/SQL TABLE datatype 중 하나 이상의 요소로 구성 - PL/SQL 테.. 2020. 7. 25.
[Oracle] PL/SQL 기초7 - 컬렉션(Collection) : VARRAY, Nested Table, 연관 배열, 메소드 등 [Oracle] PL/SQL 기초7 - 컬렉션(Collection) : VARRAY, Nested Table, 연관 배열, 메소드 등 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ [Oracle] PL/SQL 기초 - 컬렉션(Collection) ] 입니다. : ) 혹시 이해가 안되는 내용이 많을 수 있으니, 하단의 예제부터 보는것도 추천 한다. 0.Oracle Collection ▶ 0. 컬렉션(Collection)이란? - 배열 형태의 데이터 타입 - 같은 데이터 타입을 가진 요소들로 구성 된다. - 다양한 데이터 타입을 가질 수 있는 동시에, 여러 로우에 해당하는 데이터를 가질 수 있는 자료형 - 생성자를 이용해 초기화가 가능 하다. - 빌트인 함수와 프로시저로 구성된 컬렉션 메소드를 제공 한다. .. 2020. 7. 25.
[Oracle] PL/SQL 기초6 - 함수(Function) 두번째 : 테이블 함수(Table Function, Pipeline Table Function) [Oracle] PL/SQL 기초6 - 함수(Function) 두번째 : 테이블 함수(Table Function, Pipeline Table Function) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ [Oracle] PL/SQL 기초 - 함수(2) - 테이블 함수 ] 입니다. : ) 0.Oracle Table Function ▶ 1. Table 함수란? - 여러 로우를 가진 컬렉션을 반환하는 함수 (컬렉션 타입을 반환하는데, 연관 배열은 반환하지 못하고, 중첩 테이블이나 VARRAY만 반환 가능하다.) - 기본 함수는 하나의 값만 반환이 가능하지만 테이블 함수로는 여러 행, 열의 반환이 가능 하다. (Oracle Table Function은 Multi column + Multi Row로 값을 Ret.. 2020. 7. 24.
[Oracle] PL/SQL 기초5 - 함수(Function) 첫번째 : 사용자 정의 함수(User Defined Function) [Oracle] PL/SQL 기초5 - 함수(Function) 첫번째 : 사용자 정의 함수(User Defined Function) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ [Oracle] PL/SQL 기초 - 함수(1) - 사용자 정의 함수 ] 입니다. : ) 0.Oracle Function ▶ 1. 함수(Function)란? - 이번에 설명하는 함수는 오라클에서 제공하는 내장함수(TO_CHAR, TO_DATE 등)가 아닌 사용자 정의 함수((User Defined Function)이다. - 특정 기능들을 모듈화, 재사용 할 수 있어서 복잡한 쿼리문을 간결하게 만들수 있다. 하지만, 함수 사용이 쿼리 속도를 느리게 만드는 원인(인덱스를 타지 않는 등)이 될 수 있으니 꼭 필요한 경우가 아니라면 권.. 2020. 7. 12.
[Oracle] 전역 임시 테이블 (Global Temporary Table) [Oracle] 전역 임시 테이블 (Global Temporary Table) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라클 임시 테이블 ] 입니다. : ) 전역 임시 테이블 (Global Temporary TABLE) [정의 및 특징] - SESSION(또는 TRANSACTION) 레벨의 임시 데이터를 저장하는 용도 (오라클의 실행 계획을 저장하기 위한 Plan 테이블이 전역 임시 테이블의 대표적인 사례) - SESSION(또는 TRANSACTION) 레벨의 임시 데이타 저장하기 때문에 RAC 시스템에서 글로벌 동기화 불필요 - DML LOCK 필요없음 (세션 DATA 간 경합이 발생하지 않기 때문) - REDO LOG 발생 안함 (임시 DATA 이므로 DML문이라도 redo log 발생 하지 .. 2019. 12. 17.
[Oracle] PL/SQL 기초4 - 프로시저(Procedure) [Oracle] PL/SQL 기초4 - 프로시저 (Procedure) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ Stored Procedure ] 입니다. : ) 저장 프로시저 (STORED PROCEDURE) [정의] - Transact-SQL 문장의 집합 [용도] - 어떠한 동작을 절차적 일괄처리 작업하는데 사용 - SQL Server에서 사용하는 프로그래밍 기능 [특징] - SQL Server의 성능향상 (첫 실행시 컴파일, 재컴파일 안함) 오라클은 SQL 문 수행시 다음과 같은 행동을 한다. 1. 먼저 같은 실행 계획이 공유 풀에 있는지 확인한다. (공유풀은 다음 글에서 확인 - http://goddaehee.tistory.com/64) 2. 이후 SQL문 문법 검사나 DATA DICTIONA.. 2018. 12. 23.
[Oracle] Transaction이란? [Oracle] Transaction이란? 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ [오라클] 트랜잭션 (Transactions) ] 입니다. : ) Transactions 우리가 흔히 간략하게 알고있는 트랜잭션에 관련 된 수준은 다음과 같다. 1. 하나의 논리적 작업 단위를 구성하는 하나 이상의 sql문 2. 트랜잭션의 효과를 데이터베이스에 확정 하기 → commit 3. 트랜잭션의 효과를 테이터베이스에 취소하기 → rollback ▶ 트랜잭션의 사용 이유?? - 사용자, 오라클 서버, 애플리케이션 개발자, DBA 등에게 데이터 일치성과 데이터 동시발생을 보장하기 위해 ▶ 1. 커밋 하기전 상태 1. 롤백 세그먼트 버퍼가 서버에 만들어 진다. 2. 트랜잭션의 소유자는 select문을 사용하여 트랜.. 2018. 11. 26.
[Oracle] sysdate와 systimestamp 정리 및 예제 [Oracle] sysdate와 systimestamp 정리 및 예제 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ [오라클] sysdate, systimestamp 정리 ] 입니다. : ) 자바 웹 개발을 하다보면 밀리세컨즈 까지 시간단위를 가져와 활용할 때가 있다. 그럼 오라클에서 밀리세컨드까지 시간단위를 가져올 수 있는 방법도 정리 해보려 한다. sysdate1. sysdate의 경우 년월일시분초 까지 표현 가능 ex) select sysdate from dual; 2. SYSDATE 활용 - 날짜를 포맷 적용하여 문자열로 변환 1번 2번 같은 결과 /* 1. 결과 2018-10-04 10:49:52 */ select to_char(sysdate, 'YYYY-MM-DD HH:MI:SS') from .. 2018. 10. 4.
[Oracle] 시스템 테이블 정리 [Oracle] 시스템 테이블 정리 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라클 시스템 테이블 ] 입니다. : ) 오라클 System 테이블 USER_TAB_COLUMNS컬럼 정보테이블의 열(COLUMN) 정보를 알 수 있다.(COLUMN_NAME / DATA_TYPE / NULLABLE 등) USER_TAB_COMMENTS테이블/뷰에 대한 주석 정보 USER_COL_COMMENTS열에 대한 주석정보 다음 System테이블중 3가지 테이블을 활용하여 테이블 정보를 한눈에 볼 수 있는 테이블을 만들 수 있다. /******************************************** 1. 테이블정보 넣을 테이블 생성 *****************************************.. 2018. 6. 14.
[Oracle] PL/SQL 기초3 - 커서 [Oracle] PL/SQL 기초3 - 커서 (CURSOR) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ PL / SQL 커서 ] 입니다. : ) 개인적으론 PL / SQL 의 꽃은 "커서"가 아닐까 생각합니다. 커서 (CURSOR) [정의] - SQL 커서는 Oracle 서버에서 할당한 전용 메모리 영역에 대한 포인터이다. - 질의의 결과로 얻어진 여러 행이 저장된 메모리상의 위치. - 커서는 SELECT 문의 결과 집합을 처리하는데 사용된다. ※ 사전적 정의만 보자면 전혀 이해가 안가는 부분이 많다. 그래도 일단 한번 보고 넘어가자. 사전적 정의 필요없이 맨밑의 예제부터 확인 해보아도 무방할 듯 하다. [종류] 1) 암시적 커서 (Implicit Cursor) 1.1) 정의 - 오라클 DB에서 실행.. 2018. 6. 14.
[Oracle] PL/SQL 기초2 - 반복문, 제어문 [Oracle] PL/SQL 기초2 - 반복문 (FOR LOOP, LOOP, WHILE LOOP) 및 제어문 (IF, CASE) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ PL / SQL 반복문, 제어문 ] 입니다. : ) 1. 반복문 PL / SQL 에서도 반복문을 사용할 수 있는데, 크게는 2가지로 볼 수 있다. (LOOP, FOR) ▶ 1.1 FOR LOOP [문법] FOR index in [REVERSE] 시작값 .. END값 LOOP STATEMENT 1 STATEMENT 2 ...END LOOP; - index는 자동 선언되는 binary_integer형 변수이고, 1씩 증가 한다.- REVERSE 옵션이 사용 될 경우 index 는 upper_bound에서 lower_bound로 1씩 감.. 2018. 6. 3.
[Oracle] PL/SQL 기초 (정의, 특징, 사용방법, 변수선언 방법) [Oracle] PL/SQL 기초 (정의, 특징, 사용방법, 변수선언 방법) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [PL/SQL 기초] 입니다. :) ▶ PL/SQL (Procedural Language extension to SQL) - SQL을 확장한 절차적 언어(Procedural Language)이다. - 관계형 데이터베이스에서 사용되는 Oracle의 표준 데이터 엑세스 언어로, 프로시저 생성자를 SQL과 완벽하게 통합한다. - 유저 프로세스가 PL/SQL 블록을 보내면, 서버 프로세서는 PL/SQL Engine에서 해당 블록을 받고 SQL과 Procedural를 나눠서 SQL은 SQL Statement Executer로 보낸다. - PL/SQL 프로그램의 종류는 크게 Procedure, F.. 2018. 5. 24.
[Oracle] Dual 테이블이란? [Oracle] Dual 테이블이란? 안녕하세요. 갓대희 입니다. 이번 포스팅은 [Oracle Dual] 입니다. :) ▶ Dual 테이블의 정의 1. 오라클 자체에서 제공되는 테이블 2. 간단하게 함수를 이용해서 계산 결과값을 확인 할 때 사용하는 테이블 3. SYS사용자가 소유하는 오라클의 표준 테이블 (그림 참조) 4. SYS사용자가 소유하지만 어느 사용자에서 접근 가능함 (그림 참조) 5. 오직 한행, 한컬럼을 담고 있는 dummy 테이블 ▶ Dual 테이블의 사용용도 - dual 테이블은 사용자가 함수(계산)를 실행할 때 임시로 사용하는데 적합하다. - 함수에 대한 쓰임을 알고 싶을때 특정 테이블을 생성할 필요없이 dual 테이블을 이용하여 함수의 값을 리턴(return)받을 수 있다. ex) .. 2018. 5. 10.
반응형