본문 바로가기

오라클81

Shared lock과 Execlusive lock Lock? 같은 데이터를 동시에 접근해서 조회 및 수정을 해야하는 DB환경에서 일관성과 무결성 유지를 위해서는 트랜잭션의 순차적 진행을 보장할 수 있는 직렬화(Serialization)장치가 필요하게 됩니다. 즉, 같은 데이터를 동시에 접근했을 때 한명만 사용할 수 있게 해야한다는 것입니다. 그때 다른 사용자는 해당 데이터에 lock이 걸린 상태로 대기해야 합니다. Shared Lock? 데이터를 읽고자 할 때 사용됩니다. Read lock이라고도 불리며 어떤 트랜잭션에서 데이터를 읽고자 할 때 다른 Shared lock은 허용이 되지만 Execlusice lock은 불가능합니다. 리소스를 다른 사용자가 동시에 읽을 수 있게 하되 변경은 불가능하게 됩니다. 즉, 어떤 사용자가 읽고 있는 레코드 혹은 테이.. 2020. 8. 17.
트랜잭션 격리 수준(isolation level) 제가 관리하는 사이트에서 일어난 이슈였던 격리 수준에 대해서 정리하는 글을 올려보려고 합니다. ANSI/ISO SQL 표준은 4개 레벨의 트랜잭션 고립성(isolation level)을 정의하고 있습니다. 레벨에 따라 같은 트랜잭션 시나리오로 4개의 다른 결과를 받게 됩니다. 트랜잭션 고립성 수준에 따라 세개의 현상이 발생하게 됩니다. 세개의 현상은 아래에서 설명하겠습니다. - Dirty read : 커밋되지 않거나 아직 더티버퍼에 있는 데이터를 읽을 수 있는것을 말합니다. 예를들어 변경 후 아직 커밋되지 않은 값을 읽는데 변경을 가한 트랜잭션이 최종적으로 롤백된다면 그 값을 읽은 트랜잭션은 일관성이 없는 상태가 됩니다. - Non repeatable read : 한 트랜잭션 내에서 같은 쿼리를 두번 수.. 2020. 8. 17.
오라클 기동,정지 절차 기동 시 각 단계에서의 절차 오라클을 사용하기 위해서는 인스턴스를 기동해야 합니다. 인스턴스가 기동 할 때의 흐름과 각 단계에서의 절차에 대해서 설명하겠습니다. SHUTDOWN -데이터베이스에 대한 액세스를 수행할 수 없는 상태입니다. -데이터베이스를 오픈하기 위해서는 SYSDBA,SYSOPER권한을 가진 유저(SYS)로 접속하여 인스턴스 기동을 수행해야 합니다. -SHUTDOWN 상태에서 할 수 있는 작업으로는 OS레벨에서의 COLD BACKUP이 가능합니다. NOMOUNT -인스턴스가 시작하는 단계로 $ORACLE_HOME/dbs 아래에 있는 파라미터 파일을 읽어 해당 파라미터 설정값에 따른 SGA생성 및 백그라운드 프로세스를 생성합니다. 또한 alert log 파일과 trace파일에 기록을 시작합니.. 2020. 6. 12.
CH02. 조인 원리와 활용 - 03.해시조인 (1)기본 매커니즘 7.3버전에서 처음 소개된 해시 조인은 소트 머지 조인과 NL조인이 효과적이지 못한 상황에 대한 대안으로 개발되었습니다. 해시 조인은 둘 중 작은 집합(Build input)을 읽어 Hash Area에 해시 테이블을 생성하고, 반대쪽 큰 집합(Probe input)을 읽어 해시 테이블을 담색하면서 조인하는 방식입니다. 해시조인은 해시테이블을 생성할 때 해시함수를 사용합니다. 즉, 해시 함수에서 리턴받은버킷 주소로 찾아가서 해시 체인에 엔트리를 연결합니다. 해시 테이블을 탐색할 때도 해시 함수를 사용합니다. 해시 함수에서 리턴받은 버킷 주소로 찾아가서 해시 체인을 스캔하면서 데이터를 찾습니다. 해시 조인은 NL조인처럼 조인과정에서 발생하는 Random 액세스 부하가 없고(양쪽 집합을 읽.. 2020. 5. 28.