우리는 ASP.NET 4.0 (C#)을 사용하여 웹 응용 프로그램을 만들고 우리는 SQL Server 2005를 백 엔드로 사용하고 있습니다.SQL Server 2005 자주 발생하는 교착 상태
응용 프로그램 자체는 각 레코드가 한 달에 18 일 동안 4 명의 역할 담당자에 의해 증명되는 워크 플로 엔진입니다.
우리는 매달 1 일에 대략 200,000 개의 레코드를 가지고 있습니다.
(18 일) - 시스템 관리자가 이러한 기록의 소유권을 변경하는 중일 수 있지만 일부 사람들은 기록을보고 확인합니다.
내 질문이나 걱정은 우리가 자주 데이터베이스에서 교착 상태 문제가 발생한다는 것입니다.
일부 사용자는 키티에 10000 개의 레코드가있을 수 있으며 시스템 관리자는 수천 개의 레코드에 대한 소유권을 대량으로 변경할 수 있으며 그 시점에서 교착 상태가 발생하며 두 명 이상의 사용자 계정 laods와 함께 증명하려고 - 우리 교착 상태가 발생합니다.
우리는 트랜잭션과 함께 저장된 procs를 광범위하게 사용하고 있습니다. 이러한 상황을 코드화하는 방법이 있습니까?
또는 단순히 교착 상태를 피하십시오.
그런 우연한 방법으로 질문을 드리지 만 아무런 힌트 나 팁을 보내지 않으시면 사과드립니다. 문제에 대한 자세한 정보가 필요하면 알려주십시오.
감사
브릴리언트; 당신의 제안에 감사드립니다 - 제가 약간의 독서를하도록하겠습니다. –
두 가지 더 : 4) 거래 중 UI 상호 작용을 제외해야합니다 ('트랜잭션 시작, 사용자 입력 대기, 데이터 삽입, 트랜잭션 완료'방지). 5) 많은 행에 영향을주는 긴 트랜잭션이있는 경우 테이블 변수에 해당 행을 저장하고 트랜잭션이 끝날 때 최종 데이터 수정을 수행 할 수 있습니다 (예 : 'BEGIN TRAN; ... INSERT INTO @TableVarA SELECT ... FROM. ..UPDATE @TableVarA ... INSERT INTO @ 테이블 바브 ... DELETE @ 테이블 바브 ... INSERT dbo.TableA fromTableVarA; UPDATE dbo.TableB SET ... FROM @ TableVarB; COMMIT; '). 나는이 솔루션을 좋은 결과와 함께 사용했다. –