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

토토 결과 설정

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

시놉시스

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

설명

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

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

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

저지른 읽기

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

반복 가능한 읽기

현재 토토 결과의 모든 진술은 첫 번째 쿼리 또는 데이터 수정 문 이이 토토 결과에서 실행되기 전에 커밋 된 행만 볼 수 있습니다.

SERIALIZALE

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

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

첫 번째 쿼리 또는 데이터 수정 문 ( 후에 토토 결과 격리 수준을 변경할 수 없습니다.select, 삽입, 삭제, 업데이트, 병합, fetch또는COPY14355_14399토토 커뮤니티 : 문서 : 18 : 13 장. 동시성 제어거래 격리 및 동시성 제어에 대한 자세한 내용은

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

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

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

노트

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

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

세션 기본 토토 결과 모드도 구성 매개 변수를 통해 설정하거나 검사 할 수도 있습니다.default_transaction_isolation, default_transaction_read_onlydefault_transaction_deferrable. (사실은세션 특성 설정|이 변수를로 설정하는 것과 동등한 일입니다.SET.) 이것은 기본값을 configuration 파일에서 via에 설정할 수 있음을 의미합니다.Alter DatabasePostgreSQL : 문서 : 18 : 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확장.

SERIALIZALE표준의 기본 트랜잭션 격리 수준입니다. 안에PostgreSQL기본값은 일반적으로Committed그러나 위에서 언급 한대로 변경할 수 있습니다.

SQL 표준에는 이러한 명령으로 설정할 수있는 다른 트랜잭션 특성이 있습니다 : 진단 영역의 크기. 이 개념은 임베디드 SQL에만 해당되므로에서 구현되지 않습니다.PostgreSQLServer.

SQL 표준에는 연속적인 쉼표가 필요합니다Transaction_Modes그러나 역사적 이유PostgreSQL쉼표를 생략 할 수 있습니다.