● 개요
● DML
◎ INSERT
◎ UPDATE
◎ DELETE
◎ MERGE
- 연관 포스트 : http://aozjffl.tistory.com/134
● TCL
◎ COMMIT
◎ ROLLBACK
● PL/SQL
◎ 정의
: 4GL언어, SQL에 절차적 처리를 가능하게 해줌
◎ PL/SQL 오브젝트의 관리
◎ PL/SQL 오브젝트의 종류와 EM을 이용한 생성 및 관리 방법
○ Package
Database instance > Packages
○ Package body
Database instance > Package Bodies
○ Type body
○ Procedure
Database instance > Procedure
○ Function
Database instance > Functions
○ Trigger
- 트리거링 이벤트 : DML, DDL, Database
종속성 관련 valid, invalid --> 추후에~
● Lock
◎ 정의
: 여러 세션이 동시에 같은 데이터를 변경하는 것을 막는 것을 말한다.
◎ Lock의 매커니즘
○ DML
- TM lock : 이 장의 주요 관심사
RX : Row exclusive Table Locks
RS : Row Share Table Locks
S : Shared Table Locks 다른 DML을 막는 역할
테이블에 index생성시에 걸리는 락
SRX : Share Row Exclusive Table Locks
X : Exclusive
※ 연관 포스트 : http://aozjffl.tistory.com/
Exclusive : I have it and you can not have it.
Share : I have it and you can share it with me.
But if you try to get it exclusively, I will not let you.
- TX lock : row level lock
○ DDL : 자동 commit이므로 lock에 대해 별 문제가 없다.
system lock : ST, BF
v$lock에 관한 소개 : manual 참조할 것
◎ 데이터 일치성
◎ DML Locks
◎ Enqueue 매커니즘
○ Lock vs Latch
- Lock : 로우에 있는 자원을 보호
queuing 되다.
v$lock
latch보다 덜 엄격하다.(공유 가능한 lock이 많다.)
- Latch : 메모리에 있는 자원을 보호
queuing 되지 않는다. spinning. 복불복 시스템
v$latch
lock보다 엄격하다.(완전 독점)
◎ Lock의 경합
○ 원인
- commit되지 않은 변경
- 긴 transaction
- 필요하지 않은 높은 락 레벨
○ Lock 경합을 찾는 방법
○ Lock 경합을 해결하는 방법
- EM을 이용한 방법
Database instance > Blocking Sessions를 이용
- SQL을 이용한 방법
※ 왜 session id와 serial number를 같이 넣어줄까?
-> session의 유일성을 보장하기 위해서.
session id는 재이용된다. serial number는 계속 증가된다.
○ Dead Lock
참고 메뉴얼 : transaction 133page
http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/consist.htm#sthref2026
- SQL을 사용하여 데이터를 관리하는 방법을 알아보자.
- PL/SQL 객체에 대해 알아보고 관리하는 방법을 알아보자.
- 트리거와 트리거링 이벤트에 대해서 알아보자.
- LOCK 경합을 모니터하고 해결하는 방법을 알아보자.
- PL/SQL 객체에 대해 알아보고 관리하는 방법을 알아보자.
- 트리거와 트리거링 이벤트에 대해서 알아보자.
- LOCK 경합을 모니터하고 해결하는 방법을 알아보자.
● DML
◎ INSERT
◎ UPDATE
◎ DELETE
◎ MERGE
- 연관 포스트 : http://aozjffl.tistory.com/134
● TCL
◎ COMMIT
◎ ROLLBACK
● PL/SQL
◎ 정의
: 4GL언어, SQL에 절차적 처리를 가능하게 해줌
◎ PL/SQL 오브젝트의 관리
◎ PL/SQL 오브젝트의 종류와 EM을 이용한 생성 및 관리 방법
○ Package
Database instance > Packages
○ Package body
Database instance > Package Bodies
○ Type body
○ Procedure
Database instance > Procedure
○ Function
Database instance > Functions
○ Trigger
- 트리거링 이벤트 : DML, DDL, Database
SQL> select type from dba_source;
SQL> select * from dba_triggers;
SQL> select * from dba_triggers;
종속성 관련 valid, invalid --> 추후에~
● Lock
◎ 정의
: 여러 세션이 동시에 같은 데이터를 변경하는 것을 막는 것을 말한다.
◎ Lock의 매커니즘
○ DML
- TM lock : 이 장의 주요 관심사
RX : Row exclusive Table Locks
RS : Row Share Table Locks
S : Shared Table Locks 다른 DML을 막는 역할
테이블에 index생성시에 걸리는 락
SRX : Share Row Exclusive Table Locks
X : Exclusive
※ 연관 포스트 : http://aozjffl.tistory.com/
Exclusive : I have it and you can not have it.
Share : I have it and you can share it with me.
But if you try to get it exclusively, I will not let you.
- TX lock : row level lock
○ DDL : 자동 commit이므로 lock에 대해 별 문제가 없다.
system lock : ST, BF
v$lock에 관한 소개 : manual 참조할 것
◎ 데이터 일치성
◎ DML Locks
◎ Enqueue 매커니즘
○ Lock vs Latch
- Lock : 로우에 있는 자원을 보호
queuing 되다.
v$lock
latch보다 덜 엄격하다.(공유 가능한 lock이 많다.)
- Latch : 메모리에 있는 자원을 보호
queuing 되지 않는다. spinning. 복불복 시스템
v$latch
lock보다 엄격하다.(완전 독점)
◎ Lock의 경합
○ 원인
- commit되지 않은 변경
- 긴 transaction
- 필요하지 않은 높은 락 레벨
○ Lock 경합을 찾는 방법
○ Lock 경합을 해결하는 방법
- EM을 이용한 방법
Database instance > Blocking Sessions를 이용
- SQL을 이용한 방법
SQL> select sid, serial#, username from v$session; -- session의 정보를 본다.
SQL> alter system kill session '88','96'; -- 세션을 죽인다. 88:session id, 96:serial number
SQL> alter system kill session '88','96'; -- 세션을 죽인다. 88:session id, 96:serial number
※ 왜 session id와 serial number를 같이 넣어줄까?
-> session의 유일성을 보장하기 위해서.
session id는 재이용된다. serial number는 계속 증가된다.
○ Dead Lock
참고 메뉴얼 : transaction 133page
http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/consist.htm#sthref2026
'Oracle > Admin' 카테고리의 다른 글
Lock의 종류 (0) | 2009.12.03 |
---|---|
Managing Schema Objects-2 (0) | 2009.12.02 |
Managing Schema Objects-1 (0) | 2009.11.30 |
Administering User Security (0) | 2009.11.27 |
2009년 11월 26일 수업내용 (0) | 2009.11.26 |