programing

선택한 문에 트랜잭션을 사용하시겠습니까?

powerit 2023. 6. 22. 22:31
반응형

선택한 문에 트랜잭션을 사용하시겠습니까?

저장 프로시저를 자주 사용하지 않으며 선택한 쿼리를 트랜잭션으로 묶는 것이 타당한지 궁금합니다.

내 절차에는 세 개의 단순 선택 쿼리가 있으며, 그 중 두 개는 첫 번째 쿼리의 반환된 값을 사용합니다.

매우 동시적인 애플리케이션에서는 첫 번째 선택에서 읽은 데이터가 다른 선택이 실행되기 전에 수정될 수 있습니다.

응용프로그램에서 발생할 수 있는 상황인 경우 트랜잭션을 사용하여 선택한 항목을 래핑해야 합니다.모든 트랜잭션 유형이 일관된 읽기를 보장하는 것은 아니지만 올바른 분리 수준을 선택해야 합니다.

업데이트 : 동시 업데이트/삽입 솔루션(업데이트라고도 함)에 대한 이 기사도 흥미로울 수 있습니다.선택한 문과 다음 문 사이에 데이터가 수정되지 않도록 보장하는 몇 가지 일반적인 방법을 테스트에 적용합니다.결과는 충격적입니다.

트랜잭션은 일반적으로 다음과 같은 경우에 사용됩니다.CREATE,UPDATE또는DELETE모든 것을 확약하거나 아무것도 확약하지 않는 원자적인 행동을 하고 싶어하는 진술입니다.

그러나 다음에 대한 트랜잭션을 사용할 수 있습니다.READ문 선택 대상:
선택한 쿼리가 실행되는 동안 다른 사용자가 관심 테이블을 업데이트할 수 없는지 확인합니다.

이 msdn 게시물을 보세요.

대부분의 데이터베이스는 지정되지 않은 경우에도 트랜잭션의 모든 단일 쿼리를 실행합니다.여기에는 select 문이 포함됩니다.

PostgreSQL은 실제로 모든 SQL 문을 트랜잭션 내에서 실행되는 것으로 처리합니다.BEGIN 명령을 실행하지 않으면 각 개별 명령문에는 암묵적인 BEGIN 및 (성공한 경우) COMMIT가 둘러져 있습니다.BEGIN 및 COMMIT로 둘러싸인 문 그룹을 트랜잭션 블록이라고도 합니다.

https://www.postgresql.org/docs/current/tutorial-transactions.html

언급URL : https://stackoverflow.com/questions/5982517/use-transactions-for-select-statements

반응형