젠 토토 설정 - 현재 트랜잭션의 특성 설정
젠 토토 설정Transaction_Mode
[, ...] 젠 토토 스냅 샷 설정snapshot_id
세션 특성을 젠 토토으로 설정Transaction_Mode
[, ...]여기서Transaction_Mode
중 하나입니다.분리 레벨 SERIALIZABLE | 반복 가능한 읽기 | Commited | 커밋되지 않은 읽기 쓰기 읽기 | 만 읽으십시오 [연기가 아님
the젠 토토 설정
명령은 현재 트랜잭션의 특성을 설정합니다. 후속 거래에는 영향을 미치지 않습니다.세션 특성 설정
세션의 후속 젠 토토에 대한 기본 젠 토토 특성을 설정합니다. 이러한 기본값은에 의해 상체 될 수 있습니다.거래 설정
개별 거래의 경우.
사용 가능한 트랜잭션 특성은 트랜잭션 격리 수준, 트랜잭션 액세스 모드 (읽기/쓰기 또는 읽기 전용) 및 지연 가능한 모드입니다. 또한 현재 트랜잭션에 대해서만 세션 기본값이 아닌 스냅 샷을 선택할 수 있습니다.
젠 토토의 격리 수준은 다른 젠 토토이 동시에 실행될 때 거래가 볼 수있는 데이터를 결정합니다.
Committed
진술은 시작하기 전에 저지른 행만 볼 수 있습니다. 이것은 기본입니다.
반복 가능한 읽기
현재 트랜잭션의 모든 진술은이 거래에서 첫 번째 쿼리 또는 데이터 수정 문이 실행되기 전에 저지른 행만 볼 수 있습니다..
SERIALIZABLE
현재 트랜잭션의 모든 진술은이 트랜잭션에서 첫 번째 쿼리 또는 데이터 수정 문이 실행되기 전에 커밋 된 행만 볼 수 있습니다. 동시 직렬화 가능한 트랜잭션 사이에 읽기 및 쓰기 패턴이 해당 거래의 일련의 (한 번에) 실행에 대해 발생할 수없는 상황을 만들면 A와 함께 롤백됩니다.Serialization_Failure
오류.
SQL 표준은 하나의 추가 레벨을 정의합니다.커밋되지 않은 읽기
. 안에PostgreSQL 커밋되지 않은 읽기
Committed
.
첫 번째 쿼리 또는 데이터 수정 문 ( 후에 젠 토토 격리 수준을 변경할 수 없습니다.select
, 삽입
, 삭제
, 업데이트
, Fetch
또는COPY
14498_14542토토 사이트 : 문서 : 11 : 13 장. 동시성 제어거래 격리 및 동시성 제어에 대한 자세한 내용은
트랜잭션 액세스 모드는 트랜잭션이 읽기/쓰기 또는 읽기 전용인지 여부를 결정합니다. 읽기/쓰기는 기본값입니다. 트랜잭션이 읽기 전용되면 다음 SQL 명령이 허용되지 않습니다.삽입
, 업데이트
, 삭제
및복사
그들이 쓸 테이블이 임시 테이블이 아닌 경우; 모두생성
, Alter
및드롭
명령;댓글
, grant
, Revoke
, Truncate
; 그리고분석
andexecute
실행할 명령이 나열된 명령 중 하나입니다. 이것은 모든 쓰기가 디스크에 대한 쓰기를 방해하지 않는 고급의 읽기 전용 개념입니다.
the연기 가능
젠 토토 속성이 거래가 아닌 한 영향을 미치지 않습니다SERIALIZALE
and읽기 전용
. 이 세 가지 속성 모두 젠 토토을 위해 선택되면 스냅 샷을 먼저 획득 할 때 젠 토토이 차단 될 수 있으며, 그 후 A의 정상적인 오버 헤드없이 실행할 수 있습니다.SERIALIZABLE
거래 및 직렬화 실패에 기여하거나 취소 될 위험이 없습니다. 이 모드는 장기 보고서 또는 백업에 적합합니다.
the젠 토토 설정 스냅 샷
명령은 새 젠 토토을 동일하게 실행할 수 있도록합니다스냅 샷기존 거래. 기존 거래는와 함께 스냅 샷을 내보냈어야합니다.PG_EXPORT_SNAPSHOT
함수 (참조섹션 9.26.5). 해당 기능은 스냅 샷 식별자를 반환합니다.젠 토토 설정 스냅 샷
가져올 스냅 샷을 지정합니다. 식별자는이 명령에서 문자열 문자로 작성되어야합니다 (예 :'00000003-0000001B-1'
. 젠 토토 설정 스냅 샷
첫 번째 쿼리 또는 데이터 수정 문 ( 전에 젠 토토 시작시에만 실행할 수 있습니다.select
, 삽입
, 삭제
, 업데이트
, fetch
또는COPY
17400_17476SERIALIZALE
또는반복 가능한 읽기
격리 레벨 (그렇지 않으면 스냅 샷이 즉시 폐기됩니다.Committed
모드는 각 명령에 대한 새 스냅 샷을 취합니다). 가져 오는 트랜잭션이 사용하는 경우SERIALIZALE
격리 수준, 스냅 샷을 내보낸 트랜잭션도 해당 격리 수준을 사용해야합니다. 또한 읽기 전용 직렬화 가능한 트랜잭션은 읽기 전용 트랜잭션에서 스냅 샷을 가져올 수 없습니다.
if젠 토토 설정
사전없이 실행젠 토토 시작
또는시작
, 그것은 경고를 방출하고 그렇지 않으면 영향을 미치지 않습니다.
분배 할 수 있습니다거래 설정
대신 원하는 것을 지정하여Transaction_Modes
in시작
또는젠 토토 시작
. 그러나 그 옵션은 사용할 수 없습니다젠 토토 설정 스냅 샷
.
세션 기본 젠 토토 모드는 구성 매개 변수를 통해 설정하거나 검사 할 수도 있습니다.default_transaction_isolation, default_transaction_read_only및default_transaction_deferrable. (사실은세션 특성 설정
|이 변수를 설정하는 것과 동등한 일입니다.SET
.) 이는 기본값이 구성 파일에서 설정할 수 있음을 의미합니다Alter Database
등배트맨 토토 : 문서 : 11 : 19 장. 서버 구성자세한 내용은
현재 트랜잭션 모드는 구성 매개 변수를 통해 유사하게 설정하거나 검사 할 수 있습니다Transaction_isolation, Transaction_Read_Only및Transaction_Deferrable. 이 매개 변수 중 하나를 설정하면 해당와 동일합니다거래 설정
옵션, 언제 수행 할 수 있는지에 대한 동일한 제한 사항이 있습니다. 그러나 이러한 매개 변수는 구성 파일 또는 Live SQL 이외의 소스에서 설정할 수 없습니다.
이미 기존 트랜잭션과 동일한 스냅 샷으로 새로운 트랜잭션을 시작하려면 먼저 기존 트랜잭션에서 스냅 샷을 내 보냅니다. 예를 들어 스냅 샷 식별자를 반환합니다.
트랜잭션 격리 레벨 반복 가능한 읽기 시작; pg_export_snapshot ()을 선택하십시오. pg_export_snapshot -------------------- 00000003-0000001B-1 (1 행)
그런 다음 스냅 샷 식별자를 a에게 제공하십시오.젠 토토 설정 스냅 샷
새로 개설 된 거래의 시작 부분에서 명령 :
트랜잭션 격리 레벨 반복 가능한 읽기 시작; 젠 토토 설정 스냅 샷 '00000003-0000001B-1';
이 명령은에 정의되어 있습니다.SQL표준을 제외하고연기 가능
젠 토토 모드 및젠 토토 설정 스냅 샷
양식은PostgreSQL확장.
SERIALIZABLE
표준의 기본 트랜잭션 격리 수준입니다. 안에PostgreSQL기본값은 일반적으로Committed
그러나 위에서 언급 한대로 변경할 수 있습니다.
SQL 표준에는 이러한 명령으로 설정할 수있는 다른 트랜잭션 특성이 있습니다 : 진단 영역의 크기. 이 개념은 임베디드 SQL에만 해당되므로에서 구현되지 않습니다.PostgreSQLServer.
SQL 표준에는 연속적인 쉼표가 필요합니다Transaction_Modes
그러나 역사적 이유postgresql쉼표를 생략 할 수 있습니다.