«concurrency» 태그된 질문

여러 사용자 또는 프로세스가 데이터베이스 시스템의 공유 정보에 동시에 액세스하거나 수정할 때 발생하는 문제에 대한 질문입니다.

1
Postgres 업데이트 ... 제한 1
서버 상태 ( 'active', 'standby'등)와 같은 서버 클러스터에 대한 세부 정보가 포함 된 Postgres 데이터베이스가 있습니다. 활성 서버는 언제든지 대기로 장애 조치해야 할 수 있으며 특히 어떤 대기가 사용되는지는 중요하지 않습니다. 데이터베이스 쿼리가 대기 상태-JUST ONE-을 변경하고 사용할 서버 IP를 반환하려고합니다. 선택은 임의적 일 수 있습니다. 쿼리 상태에 따라 서버의 …

5
PostgreSQL에서 동시 DELETE / INSERT 관련 잠금 문제
이것은 매우 간단하지만 PG의 기능 (v9.0)에 당황합니다. 우리는 간단한 테이블로 시작합니다 : CREATE TABLE test (id INT PRIMARY KEY); 그리고 몇 줄 : INSERT INTO TEST VALUES (1); INSERT INTO TEST VALUES (2); 내가 좋아하는 JDBC 쿼리 도구 (ExecuteQuery)를 사용하여이 테이블이있는 DB에 두 개의 세션 창을 연결합니다. 둘 다 트랜잭션 …

4
데이터베이스에서 경쟁 조건을 어떻게 테스트합니까?
데이터베이스 코드를 작성하여 경쟁 조건이 적용되지 않는지 확인하고 올바른 행이나 테이블을 잠 갔는지 확인하십시오. 그러나 나는 종종 궁금합니다 : 내 코드가 맞습니까? 기존 경쟁 조건을 강제로 표시 할 수 있습니까? 프로덕션 환경에서 발생하면 내 응용 프로그램이 올바르게 작동하는지 확인하고 싶습니다. 나는 일반적으로 어떤 동시 쿼리가 문제를 일으킬 가능성이 있는지 정확히 …


6
SQL Server ID 값을 순서대로 읽을 수 있습니까?
TL : DR : 아래 질문은 다음과 같이 요약됩니다. 행을 삽입 할 때 새 값 생성Identity 과 클러스터 된 인덱스에서 해당 행 키 잠금 사이에 기회 창이 있습니까? 외부 관찰자가 더 새로운 것을 볼 수 있습니다. Identity동시 거래에 의해 삽입 된 가치? (SQL Server에서) 상세 버전 테이블의 클러스터형 인덱스 (여러 …


1
부분적으로 업데이트 된 행을 읽습니까?
SSMS에서 두 개의 별도 세션에서 실행되는 두 개의 쿼리가 있다고 가정 해 보겠습니다. 첫 세션 : UPDATE Person SET Name='Jonny', Surname='Cage' WHERE Id=42 두 번째 세션 : SELECT Name, Surname FROM Person WITH(NOLOCK) WHERE Id > 30 그것은 가능성이 SELECT문을 가진 인스턴스 하나에 대한 반 업데이트 된 행을 읽을 수 …

3
존재하지 않는 경우 동시에 삽입
저장 프로 시저의 삽입에 동시성 문제가 있습니다. 절차의 관련 부분은 다음과 같습니다. select @_id = Id from table1 where othervalue = @_othervalue IF( @_id IS NULL) BEGIN insert into table1 (othervalue) values (@_othervalue) select @_id = Id from table1 where othervalue = @_othervalue END 이러한 저장 프로 시저 중 3 …

1
높은 동시 저장 시스템
요구 사항에 3 개의 거대한 테이블 (구조화 된 데이터)이 있고 각각에 300 억 개의 행 (총 4TB 크기)이 있고 많은 동시 사용자 (원격 LAN 시스템의 병렬 OS 스레드)가 SELELCT WHERE GROUPBY 쿼리를 통한 데이터 및 동시 동시 (예 : 10,000 개의 동시 읽기) 및 사용자는 2000 개의 동시 작성기 (데이터 …

1
많은 양의 데이터가있는 기존 테이블에 인덱스를 추가하면 어떻게됩니까?
약 1,500 만 건의 레코드가 포함될 테이블이 있습니다. 이제 테이블에 인덱스를 추가해야합니다. 색인을 추가하면 테이블의 모든 항목을 업데이트하는 데 시간이 걸립니다. 인덱스를 추가하면 가동 중지 시간이 발생하는지 혼란 스럽습니다. 그렇다면 다운 타임을 어떻게 극복 할 수 있습니까?

1
UPDATE / INSERT 조합을 위해 Postgres에서 잠금
두 개의 테이블이 있습니다. 하나는 로그 테이블입니다. 다른 하나는 본질적으로 한 번만 사용할 수있는 쿠폰 코드를 포함합니다. 사용자는 쿠폰을 사용할 수 있어야합니다. 쿠폰을 사용하면 로그 테이블에 행을 삽입하고 쿠폰을 사용한 것으로 표시합니다 ( used열을 로 업데이트하여 true). 당연히 여기에는 명백한 경쟁 조건 / 보안 문제가 있습니다. 나는 mySQL의 세계에서 과거에 …

2
LATCH_EX는 리소스를 기다립니다. METADATA_SEQUENCE_GENERATOR
재고 보고서를 생성하는 프로세스가 있습니다. 클라이언트 쪽에서 프로세스는 구성 가능한 수의 작업자 스레드로 분할되어 여러 저장소 (잠재적으로 수천 개, 일반적으로 수십 개) 중 하나에 해당하는 보고서에 대한 데이터 청크를 작성합니다. 각 작업자 스레드는 저장 프로 시저를 실행하는 웹 서비스를 호출합니다. 각 청크를 처리하기위한 데이터베이스 프로세스는 #Temporary 테이블에 많은 데이터를 수집합니다. …

6
COMM UNCOMMITTED 격리 수준을 사용하는 최상의 상황
우리 모두 알고 있듯이, READ UNCOMMITTED는 더티 읽기 및 팬텀 읽기와 같은 것들이 발생할 수있는 가장 낮은 격리 수준입니다. 이 격리 수준을 사용하기 가장 좋은시기는 언제이며 어떤 이유로 사용해야합니까? 실제로 나는 이전에 답변을 읽었지만 충분한 예가 없기 때문에 완전히 이해할 수 없었습니다.

1
트랜잭션에 Select 문 삽입
이 두 쿼리의 차이점은 무엇입니까? START TRANSACTION; SELECT * FROM orders WHERE id=1; UPDATE orders SET username='John' WHERE id=1; COMMIT; 그리고 거래없이 : SELECT * FROM orders WHERE id=1; UPDATE orders SET username='John' WHERE id=1; SELECT내부 거래 를하면 어떤 효과가 있습니까? 경우 DELETE FROM orders WHERE id=1우측 후 다른 세션에서 …

3
반복 가능한 읽기의 불일치
http://www.postgresql.org/docs/9.2/static/transaction-iso.html 반복 가능한 읽기 모드는 각 트랜잭션이 데이터베이스를 완전히 안정적으로 볼 수 있도록 보장합니다. 그러나이 관점이 반드시 동일한 레벨의 동시 트랜잭션의 일부 (한 번에 하나씩) 실행과 항상 일치하는 것은 아닙니다. 예를 들어,이 레벨의 읽기 전용 트랜잭션조차도 배치가 완료되었음을 표시하기 위해 제어 레코드가 업데이트되었지만 제어 레코드의 이전 개정을 읽었으므로 배치의 논리적 …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.