이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 토토 커뮤니티 설정버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

젠 토토 설정

젠 토토 설정 - 현재 트랜잭션의 특성 설정

시놉시스

젠 토토 설정Transaction_Mode[, ...]
젠 토토 스냅 샷 설정snapshot_id세션 특성을 젠 토토으로 설정Transaction_Mode[, ...]여기서Transaction_Mode중 하나입니다.분리 레벨 SERIALIZABLE | 반복 가능한 읽기 | Commited | 커밋되지 않은 읽기
    쓰기 읽기 | 만 읽으십시오
    [연기가 아님

설명

the젠 토토 설정명령은 현재 트랜잭션의 특성을 설정합니다. 후속 거래에는 영향을 미치지 않습니다.세션 특성 설정세션의 후속 젠 토토에 대한 기본 젠 토토 특성을 설정합니다. 이러한 기본값은에 의해 상체 될 수 있습니다.거래 설정개별 거래의 경우.

사용 가능한 트랜잭션 특성은 트랜잭션 격리 수준, 트랜잭션 액세스 모드 (읽기/쓰기 또는 읽기 전용) 및 지연 가능한 모드입니다. 또한 현재 트랜잭션에 대해서만 세션 기본값이 아닌 스냅 샷을 선택할 수 있습니다.

젠 토토의 격리 수준은 다른 젠 토토이 동시에 실행될 때 거래가 볼 수있는 데이터를 결정합니다.

Committed

진술은 시작하기 전에 저지른 행만 볼 수 있습니다. 이것은 기본입니다.

반복 가능한 읽기

현재 트랜잭션의 모든 진술은이 거래에서 첫 번째 쿼리 또는 데이터 수정 문이 실행되기 전에 저지른 행만 볼 수 있습니다..

SERIALIZABLE

현재 트랜잭션의 모든 진술은이 트랜잭션에서 첫 번째 쿼리 또는 데이터 수정 문이 실행되기 전에 커밋 된 행만 볼 수 있습니다. 동시 직렬화 가능한 트랜잭션 사이에 읽기 및 쓰기 패턴이 해당 거래의 일련의 (한 번에) 실행에 대해 발생할 수없는 상황을 만들면 A와 함께 롤백됩니다.Serialization_Failure오류.

SQL 표준은 하나의 추가 레벨을 정의합니다.커밋되지 않은 읽기. 안에PostgreSQL 커밋되지 않은 읽기Committed.

첫 번째 쿼리 또는 데이터 수정 문 ( 후에 젠 토토 격리 수준을 변경할 수 없습니다.select, 삽입, 삭제, 업데이트, Fetch또는​​COPY14498_14542토토 사이트 : 문서 : 11 : 13 장. 동시성 제어거래 격리 및 동시성 제어에 대한 자세한 내용은

트랜잭션 액세스 모드는 트랜잭션이 읽기/쓰기 또는 읽기 전용인지 여부를 결정합니다. 읽기/쓰기는 기본값입니다. 트랜잭션이 읽기 전용되면 다음 SQL 명령이 허용되지 않습니다.삽입, 업데이트, 삭제복사그들이 쓸 테이블이 임시 테이블이 아닌 경우; 모두생성, Alter드롭명령;댓글, grant, Revoke, Truncate; 그리고분석andexecute실행할 명령이 나열된 명령 중 하나입니다. 이것은 모든 쓰기가 디스크에 대한 쓰기를 방해하지 않는 고급의 읽기 전용 개념입니다.

the연기 가능젠 토토 속성이 거래가 아닌 한 영향을 미치지 않습니다SERIALIZALEand읽기 전용. 이 세 가지 속성 모두 젠 토토을 위해 선택되면 스냅 샷을 먼저 획득 할 때 젠 토토이 차단 될 수 있으며, 그 후 A의 정상적인 오버 헤드없이 실행할 수 있습니다.SERIALIZABLE거래 및 직렬화 실패에 기여하거나 취소 될 위험이 없습니다. 이 모드는 장기 보고서 또는 백업에 적합합니다.

the젠 토토 설정 스냅 샷명령은 새 젠 토토을 동일하게 실행할 수 있도록합니다스냅 샷기존 거래. 기존 거래는와 함께 스냅 샷을 내보냈어야합니다.PG_EXPORT_SNAPSHOT함수 (참조섹션 9.26.5). 해당 기능은 스냅 샷 식별자를 반환합니다.젠 토토 설정 스냅 샷가져올 스냅 샷을 지정합니다. 식별자는이 명령에서 문자열 문자로 작성되어야합니다 (예 :'00000003-0000001B-1'. 젠 토토 설정 스냅 샷첫 번째 쿼리 또는 데이터 수정 문 ( 전에 젠 토토 시작시에만 실행할 수 있습니다.select, 삽입, 삭제, 업데이트, fetch또는COPY17400_17476SERIALIZALE또는반복 가능한 읽기격리 레벨 (그렇지 않으면 스냅 샷이 즉시 폐기됩니다.Committed모드는 각 명령에 대한 새 스냅 샷을 취합니다). 가져 오는 트랜잭션이 사용하는 경우SERIALIZALE격리 수준, 스냅 샷을 내보낸 트랜잭션도 해당 격리 수준을 사용해야합니다. 또한 읽기 전용 직렬화 가능한 트랜잭션은 읽기 전용 트랜잭션에서 스냅 샷을 가져올 수 없습니다.

노트

if젠 토토 설정사전없이 실행젠 토토 시작또는시작, 그것은 경고를 방출하고 그렇지 않으면 영향을 미치지 않습니다.

분배 할 수 있습니다거래 설정대신 원하는 것을 지정하여Transaction_Modesin시작또는젠 토토 시작. 그러나 그 옵션은 사용할 수 없습니다젠 토토 설정 스냅 샷.

세션 기본 젠 토토 모드는 구성 매개 변수를 통해 설정하거나 검사 할 수도 있습니다.default_transaction_isolation, default_transaction_read_onlydefault_transaction_deferrable. (사실은세션 특성 설정|이 변수를 설정하는 것과 동등한 일입니다.SET.) 이는 기본값이 구성 파일에서 설정할 수 있음을 의미합니다Alter Database배트맨 토토 : 문서 : 11 : 19 장. 서버 구성자세한 내용은

현재 트랜잭션 모드는 구성 매개 변수를 통해 유사하게 설정하거나 검사 할 수 있습니다Transaction_isolation, Transaction_Read_OnlyTransaction_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쉼표를 생략 할 수 있습니다.