혼자서 해결을 해보려 했으나 어느 부분부터 들여다 봐야 할 지 몰라서 이렇게 도움을 여쭤봅니다.


제가 EXEC sp1; EXEC sp2; EXEC sp3; 이렇게 실행을 하면 SP1, SP2, SP3 가 순차척으로 돌아가는데 저는 저 세 sp가 같은 시간에 실행 되도록 하고 싶어서 Stored procedure 이름들을 변수로 받아서 Parallel.ForEach를 사용하는 CRL 함수를 만들었습니다.


대략적으로 말하자면, 아래의 방식으로 CRL 함수를 불렀을때


EXEC SP_ParallelExecution @Server = '(local)'

@Database = 'DataBaseName',

@SPNames = 'SP1,SP2,SP3'


C# 코드는 아래의 식으로 돌아갑니다.


string conn = "Data source=" + (string)Server + ";initial Catalog=" + (string)Database + ";user id=id;password=pw";

string[] SPs = SPNames.ToString().Split(',');


Parallel.ForEach(SPs, item =>

{

string esql = "EXEC " + item;

SqlConnection con = new SqlConnection(conn);

        con.Open();

        SqlCommand cmd = new SqlCommand(esql, con);

        cmd.ExecuteNonQuery();

cmd.Cancel();

cmd.Dispose();

con.Close();

con.Dispose();

}


문제는 제가 서버에서 직접 EXEC sp1; 이라고 실행했을때 1초밖에 안 걸리는 간단한 작은 쿼리도 이 CRL을 통해서 실행되면 

CPU를 30% 점유하고 이 쿼리가 실행이 끝났음에도 CPU가 30%가 점유된 채로 유지가 됩니다. 현재 사용중인 SQL Server 버전은 2008 R2 입니다. 


그리고 이 현상은 서버가 Window Server 2012일 경우에만 일어납니다. 이 똑같은 CRL을 같은 방식으로 Window Server 2008 R2에서 사용했을 경우에는 아무런 문제가 일어나지 않습니다.


저희가 Windows Server 2012를 산지 얼마 안되서 뭐가 세팅이 잘못되서 이러는건지 도저히 어디를 둘러봐야 할지 모르겠습니다.


Troubleshooting 하는 방법좀 가르쳐 주세요ㅠㅠ 그리고 혹시 이런 Parallel.ForEach 를 CLR로 만들지 않고 다른 방식으로 여러개의 sp를 동시에 실행시킬수 있는 방법을 아시는 분 있으면 추천 부탁 드립니다..


C# 코드와 어셈블리를 첨부합니다.






No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 22184
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 12260
8240 안녕하세요. SQL쿼리 질문 좀 드릴게요. ㅠㅜ [3] 코붕이 2014.10.06 3359
8239 성능에 관한 질문 [1] 띠립수 2014.10.06 1938
8238 데이터 내보내기 기능 관련 질문드립니다. [4] 나는짱이야 2014.10.05 2731
8237 완전 쌩초보 입니다 ㅠㅠ 책보고 공부하다 질문드립니다! [3] 어려운SQL 2014.10.04 2937
» Parallel 을 CLR 로 만들어 쿼리를 하면 cpu 점유가 쿼리가 끝난후에도 풀리지 않는 문제. 도와주세요 |||OTL [1] 써니써니 2014.10.04 2943
8235 단어 단위로 줄바꿈을 하는 쿼리 [1] 그러던가 2014.10.03 3972
8234 가상테이블...ㅜ [5] 마힐링 2014.10.02 2526
8233 osql -E -Q 하고 나면 SQL 서버가 없거나 접근이 거부 되었다고 나옵니다. 도와 주세요~ [3] dearpeter 2014.10.02 3360
8232 프로시저 안에 사용된 테이블 목록 뽑아내는 쿼리 질문드립니다!!! [6] HoyaSoft 2014.10.02 4581
8231 안녕하세요. 쿼리문 좀 도와주세요.. [2] 짱가79 2014.10.02 2479
8230 데이터 실시간 백업 방법에 대해 문의합니다 [2] 토토로 2014.10.02 2648
8229 MSSQL 콜센터 땐써리 2014.10.01 2334
8228 출석부 출력하는데 시간 단축 방법 없을까요? [3] 김동환_278720 2014.10.01 3679
8227 데드락 플래그 관련 질문입니다. [2] 흑흑 2014.10.01 2103
8226 2000사용하다 넘어왔는데 질문이 있습니다. [2] 카루카루 2014.09.30 2141
8225 사용자 권한을 스크립트로 뽑는 방법이 있을까요? 흑흑 2014.09.29 2282
8224 일괄 업데이트가 프로시저안에선 다르게 실행되는 이유 [3] 이시우_301202 2014.09.29 3048
8223 A 테이블의 컬럼 값을 B 테이블의 특정 칼럼에서 가져오기 [6] 백바서 2014.09.28 6804
8222 인덱스 재작성 관련 질문입니다. [3] 아직모자란사람 2014.09.28 2869
8221 5일째 해메이고 있습니다. 도와주세요. 짱가79 2014.09.27 2558





XE Login