2017-09-12 30 views
0

내 응용 프로그램이 이러한 호출 사이에 격리 수준이 Serializable로 변경되는 것처럼 보이는 여러 SP를 호출 중입니다. 나는 코드를 살펴 보았고 어디에도 고립 레벨을 설정하지 않았다. SQL 연결 풀이이 레벨을 설정하는지 알 수 있습니까?변경중인 트랜잭션 찾기 IsolationLevel

MS SQL 2008 R2를 사용 중입니다.

SQL 프로파일 러를 실행할 때 격리가 변경된 것을 볼 수 있습니다. 호출 된 SP가 그것을 변경하지 않습니다. 격리 수준이 지정되지 않았기 때문에 SQL 연결 풀에서 사용할 수준을 결정하고 다시 설정하지 않습니까?

Audit Login -- network protocol: LPC 
set quoted_identifier on 
set arithabort on 
set numeric_roundabort off 
set ansi_warnings on 
set ansi_padding on 
set ansi_nulls on 
set concat_null_yields_null on 
set cursor_close_on_commit off 
set implicit_transactions off 
set language us_english 
set dateformat mdy 
set datefirst 7 
set transaction isolation level serializable 
+0

앱에서 Entity Framework를 사용하고 있습니까? 나는 그것이 Serializable을 디폴트로 사용하고 적어도 (나에게는) 놀랍다는 문제점에 봉착했다. –

+0

우리는 SqlCommand, Ben을 사용하고 있습니다. – SoothingMusic

답변

2

다시 사용한 풀링 연결은 트랜잭션 격리 수준을 변경하지 않습니다.

아마 TransactionScope을 사용하고 있습니다. The default isolation level with TransactionScope is serializable을 지정해야합니다.

+0

Dan 감사합니다. 우리 코드에서는 (var trans = new TransactionScope (TransactionScopeOption.RequiresNew))를 사용하고 있습니다. 이게 범인일지도 몰라. – SoothingMusic