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