| 윈 토토 : 문서 : 9.4 : 윈 토토 | |||
|---|---|---|---|
| PostgreSQL : 문서 : 9.4 : 세션 토토 캔 토토 캔 | PostgreSQL : 문서 : 9.4 : SQL 윈 토토 | PostgreSQL : 문서 : 9.4 : 스포츠 토토 결과 | |
거래 설정transaction_mode[, ...]
거래 스냅샷 설정snapshot_id세션 특성을 젠 토토으로 설정transaction_mode [, ...]
어디에서transaction_mode다음 중 하나입니다:격리 수준 직렬화 가능 | 반복 읽기 | 커밋됨 읽기 | 커밋되지 않은 읽기
읽기 쓰기 | 읽기 전용
[ 아님 ] 연기 가능그젠 토토 설정명령은 현재 트랜잭션의 특성을 설정합니다. 후속 거래에는 영향을 미치지 않습니다.세션 특성 설정세션의 후속 트랜잭션에 대한 기본 트랜잭션 특성을 설정합니다. 이러한 기본값은 다음으로 재정의될 수 있습니다.거래 설정개별 거래의 경우.
사용 가능한 트랜잭션 특성은 트랜잭션 격리 수준, 트랜잭션 액세스 모드(읽기/쓰기 또는 읽기 전용) 및 연기 가능 모드입니다. 또한 세션 기본값이 아닌 현재 트랜잭션에 대해서만 스냅샷을 선택할 수 있습니다.
젠 토토의 격리 수준은 다른 젠 토토이 동시에 실행될 때 젠 토토이 볼 수 있는 데이터를 결정합니다.
문은 시작되기 전에 커밋된 행만 볼 수 있습니다. 이것이 기본값입니다.
현재 트랜잭션의 모든 명령문은 이 트랜잭션에서 첫 번째 쿼리 또는 데이터 수정 명령문이 실행되기 전에 커밋된 행만 볼 수 있습니다.
현재 트랜잭션의 모든 명령문은 이 트랜잭션에서 첫 번째 쿼리 또는 데이터 수정 명령문이 실행되기 전에 커밋된 행만 볼 수 있습니다. 동시 직렬화 가능 트랜잭션 간의 읽기 및 쓰기 패턴으로 인해 해당 트랜잭션의 직렬(한 번에 하나씩) 실행에서 발생할 수 없는 상황이 발생하는 경우 그 중 하나는직렬화_실패오류.
SQL 표준은 하나의 추가 레벨을 정의합니다.커밋되지 않은 읽기. 안에PostgreSQL 커밋되지 않은 읽기다음과 같이 처리됩니다.읽어 커밋됨.
첫 번째 쿼리 또는 데이터 수정 문 이후에는 젠 토토 격리 수준을 변경할 수 없습니다. (선택, 삽입, 삭제, 업데이트, 가져오기또는복사) 젠 토토이 실행되었습니다. 보다사설 토토 사이트 : 문서 : 9.4 : 사설 토토 사이트 제어젠 토토 격리 및 동시성 제어에 대한 자세한 내용을 확인하세요.
트랜잭션 액세스 모드는 트랜잭션이 읽기/쓰기인지 또는 읽기 전용인지를 결정합니다. 읽기/쓰기가 기본값입니다. 트랜잭션이 읽기 전용이면 다음 SQL 명령이 허용되지 않습니다.삽입, 업데이트, 삭제및다음에서 복사그들이 기록하려는 테이블이 임시 테이블이 아닌 경우; 모두생성, 변경및드롭명령;댓글, 그랜트, 취소, 잘라내기; 그리고분석 설명그리고실행그들이 실행할 명령이 나열된 명령 중 하나일 경우. 이는 디스크에 대한 모든 쓰기를 방지하지 않는 읽기 전용이라는 높은 수준의 개념입니다.
그지연 가능트랜잭션이 다음과 같지 않으면 트랜잭션 속성은 효과가 없습니다.직렬화 가능그리고읽기 전용. 트랜잭션에 대해 이러한 세 가지 속성을 모두 선택하면 스냅샷을 처음 획득할 때 트랜잭션이 차단될 수 있으며, 그 후에는 일반적인 오버헤드 없이 실행할 수 있습니다.직렬화 가능트랜잭션이며 직렬화 실패로 인해 취소되거나 기여할 위험이 없습니다. 이 모드는 장기 실행 보고서 또는 백업에 매우 적합합니다.
그젠 토토 스냅샷 설정명령을 사용하면 동일한 트랜잭션으로 새 트랜잭션을 실행할 수 있습니다.스냅샷기존 거래로. 기존 트랜잭션은 다음을 사용하여 스냅샷을 내보냈어야 합니다.pg_export_snapshot함수(참조섹션 9.26.5). 해당 함수는 스냅샷 식별자를 반환하며, 이는 다음에 제공되어야 합니다.젠 토토 스냅샷 설정가져올 스냅샷을 지정합니다. 식별자는 이 명령에서 문자열 리터럴로 작성되어야 합니다. 예를 들면 다음과 같습니다.'000003A1-1'. 젠 토토 스냅샷 설정트랜잭션 시작 시, 첫 번째 쿼리 또는 데이터 수정 문 이전에만 실행될 수 있습니다(선택, 삽입, 삭제, 업데이트, 가져오기또는복사) 거래. 또한 거래가 이미 다음으로 설정되어 있어야 합니다.직렬화 가능또는반복 가능한 읽기격리 수준(그렇지 않으면 스냅샷이 즉시 삭제됩니다.읽어 커밋됨모드는 각 명령에 대해 새로운 스냅샷을 생성합니다). 가져오기 거래에서 다음을 사용하는 경우직렬화 가능격리 수준인 경우 스냅샷을 내보낸 트랜잭션도 해당 격리 수준을 사용해야 합니다. 또한 읽기 전용이 아닌 직렬화 가능 트랜잭션은 읽기 전용 트랜잭션에서 스냅샷을 가져올 수 없습니다.
만약거래 설정이전 없이 실행됩니다거래 시작또는시작, 경고를 내보내고 그렇지 않으면 아무런 효과가 없습니다.
없애는 것이 가능합니다거래 설정대신 원하는 것을 지정하여transaction_modes에시작또는거래 시작. 하지만 해당 옵션은 다음에서는 사용할 수 없습니다.젠 토토 스냅샷 설정.
세션 기본 젠 토토 모드는 구성 매개변수를 설정하여 설정할 수도 있습니다.default_transaction_isolation, default_transaction_read_only및default_transaction_deferrable. (사실은세션 특성 설정는 이러한 변수를 설정하는 것과 동등한 장황한 표현입니다.SET.) 이는 다음을 통해 구성 파일에 기본값을 설정할 수 있음을 의미합니다.데이터베이스 변경등 문의롤 토토 : 문서 : 9.4 : 서버 구성더 많은 정보를 원하시면.
기존 트랜잭션과 동일한 스냅샷으로 새 트랜잭션을 시작하려면 먼저 기존 트랜잭션에서 스냅샷을 내보내십시오. 그러면 스냅샷 식별자가 반환됩니다. 예를 들면 다음과 같습니다.
트랜잭션 격리 수준 반복 읽기 시작; SELECT pg_export_snapshot(); pg_export_snapshot ------- 000003A1-1 (1행)
그런 다음 a에 스냅샷 식별자를 제공하십시오.젠 토토 스냅샷 설정새로 열린 트랜잭션 시작 시 명령:
트랜잭션 격리 수준 반복 읽기 시작; 트랜잭션 스냅샷 '000003A1-1' 설정;
이 명령은 다음에 정의되어 있습니다.SQL표준, 제외지연 가능젠 토토 모드 및젠 토토 스냅샷 설정양식, 이는PostgreSQL확장.
직렬화 가능는 표준의 기본 트랜잭션 격리 수준입니다. 안에PostgreSQL기본값은 보통입니다읽어 커밋됨, 하지만 위에서 언급한 대로 변경할 수 있습니다.
SQL 표준에는 이러한 명령으로 설정할 수 있는 또 다른 트랜잭션 특성이 있습니다: 진단 영역의 크기입니다. 이 개념은 Embedded SQL에만 적용되므로 다음에서는 구현되지 않습니다.PostgreSQL서버.
SQL 표준에서는 연속된 내용 사이에 쉼표가 필요합니다.transaction_modes, 그러나 역사적인 이유로PostgreSQL쉼표를 생략할 수 있습니다.