이 기사는 교착 상태를 방지하기위한 중요한 팁을 제안합니다. SQL Servers
이기는하지만 SQL Server 지난 몇 년 동안 엄청난 발전을 목격했지만 사용자는 여전히 교착 상태에 직면 해 있습니다. 이상적으로는 데이터베이스 서버가 여러 요청을 검색 할 수 있어야하지만 종종 블록이 발생합니다. 한 프로세스가 다른 리소스의 해제를 기다리는 충돌을 블록이라고합니다. 그리고 교착 상태가 있습니다.
한 사람이 두 번째 사람에게 리소스를 해제하도록 요청하고 두 번째 사람이 첫 번째 사람이 해제되기를 기다리는 상황을 상상해보십시오. 결과적으로 둘 다 교착 상태에 빠집니다. 둘 다 잠겨 있고 다른 프로세스가 리소스 또는 잠금을 해제하도록 요구하므로 프로세스를 계속할 수 없습니다.
작업하는 동안 SQL servers, 교착 상태는 매우 일반적이며 전체 프로세스를 방해 할 수 있습니다. 교착 상태를 모두 피할 수는 없지만 교착 상태를 만들 가능성을 최소화 할 수 있습니다.
교착 상태 문제

교착 상태는 성능에 직접적인 영향을 미치고 데이터베이스 처리를 중지시킬 수 있습니다.
1. 주문을 동일하게 유지
리소스가 잘 정의 된 순서로 처리되지 않으면 교착 상태가 발생합니다. 교착 상태를 최소화하려면 모든 동시 트랜잭션이 잘 정의 된 순서로 개체에 액세스해야합니다. DBA는 데이터베이스 개체에 액세스하기위한 명확한 규칙 세트를 설계해야합니다. 일반적으로 잠금 모니터는 교착 상태 검사를 수행하고 감지되면 교착 상태 희생자를 선택하고 트랜잭션을 롤백합니다. 따라서 모든 잠금이 해제되고 이전 세션이 프로세스를 계속할 수 있습니다. 교착 상태 희생자는 서버 또는 롤백에 의해 설정된 교착 상태 우선 순위에 따라 선택됩니다.ost.
2. 거래 중 제한
트랜잭션이 처리 중일 때 사용자가 모든 종류의 데이터를 입력하도록 제한 할 수 있으며 교착 상태를 방지하기 위해 트랜잭션 전에 데이터를 업데이트 할 수 있습니다. 또한 속도에 영향을 미치므로 사용자 상호 작용을 최소 수준으로 유지하십시오. 이상적으로는 교착 상태를 피하기 위해 트랜잭션이 짧고 빨라야합니다. 애플리케이션은 필요한 최소한의 시간에 잠금을 잡고 가능한 한 빨리 해제하는 방식으로 설계되어야합니다.
3. NOLOCK 힌트
누군가 SQL 기본 격리 수준의 테이블에 대해 쿼리를 실행하면 테이블이 잠기고 다음 쿼리는 릴리스를 기다려야합니다. NOLOCK Hint는 테이블의 재정의 잠금을 허용하고 다른 쿼리에 쉽게 액세스 할 수 있으므로 이러한 상황에서 유용합니다.
4. 바운드 연결 사용
동일한 응용 프로그램이 서로 협력 할 수있는 두 개 이상의 연결을 열 수있는 경우 교착 상태가 발생하지 않습니다. 그렇기 때문에 바운드 연결을 사용하는 것이 좋습니다.
교착 상태는 작업하는 동안 경험할 수있는 유일한 번거 로움이 아닙니다. SQL Server 데이터 베이스. 사실의 사건 SQL 손상 슬픔을 유발할 가능성이 더 높습니다. 데이터 손실 시나리오를 방지하려면 다음과 같은 강력한 복구 도구에 투자하십시오. DataNumen SQL Recovery.
저자 소개 :
Victor Simon은 데이터 복구 전문가입니다. DataNumen, Inc.는 다음과 같은 데이터 복구 기술 분야의 세계적 리더입니다. mdb 복구 및 SQL 복구 소프트웨어 제품. 자세한 내용은 https://www.datanumen.com/