문제

나는 sqlclient.sqlcommand 객체를 사용하여 DB에 저장된 몇 개의 Procs를 실행하고 있습니다. 일반적으로 쿼리 분석기를 통해 수동으로 실행하면 완료하는 데 최대 15 분이 걸립니다.

SQLCommand 객체를 사용하여 실행할 때 SQLCommand 타임 아웃을 얻습니다.

나는 타임 아웃 속성을 매우 높은 숫자로 설정할 수 있다는 것을 알고 있지만, 대안으로 Procs를 시작하고 연결을 끊는 방법이 있는지 궁금합니다. 반환 값이 필요하지 않습니다.

제안이 있습니까? 여기에서 각 SP의 처리 시간을 최적화하는 데 관심이 없으며 '설정하고 잊어 버린'옵션이 있는지 확인하려고합니다.

SQLCommand 객체의 내용은 다음과 같습니다.

using (SqlCommand cmd = new SqlCommand(@"update tbl_SYS_DATE set RPT_DATE = @inputDate
                                                    exec sp_Get_Bp_Data1
                                                    exec sp_Get_Bp_Data2          
                                                    exec sp_Get_Bp_Data3
                                                    exec sp_channel_data1
                                                    exec sp_channel_data2
                                                    exec sp_channel_data3
                                                    ", con))
도움이 되었습니까?

해결책

Beginexecutenonquery와 같은 비동기 방법을 사용할 수 있습니다. 시간 초과는 무시됩니다.

다른 팁

비동기 방법 호출 Beginexecutenonquery를 사용하십시오. 에서 MSDN 페이지

Beginexecutereader와 같은 비동기 메소드 호출 중에 지휘 시간 아웃 속성은 무시됩니다.

배경 스레드에서 해당 코드를 실행할 수 있습니다. 당신은 조사 할 수 있습니다 배경 노동자 물체.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top