안녕하세요.!
궁금한 사항이 있어 질문올립니다.
MS-SQL을 잘 몰라서 그런지..이상한 점을 발견했는데..
똑같은 프로시저를 실행하는데..
C#프로그램에서는 디버깅해보면..
데이터 쿼리실행하는 부분에서 데이터 가져오는 시간이 200초 걸리는데...
SQL Mamagement Studio에서 프로시저를 실행하면..6초에 조회됩니다..
왜그런지 아시는분 있으신지요?
즉 프로그램 코드자체에서 시간을 잡아먹지는 않고...
DB에서 데이터 가져오는 부분에서 너무 오래걸리는데...무슨문제일까요..
어떤 설정이 있는건지요?
아시는분 답변 부탁드립니다.
Comment 5
-
이근수_299013
2014.01.24 11:37
-
minsouk
2014.01.24 11:54
app 에서 수행할때의 실제플랜과 ssms 의 실제플랜을 비교해 보시면 쉽게 찾을 수 있습니다.
-
솔이
2014.01.24 14:06
Set 옵션등에 의해서 환경에 따라 다른 실행계획이 생성될 수 있으며
민석님 말대로 어플리케이션에서 실행되는 실제플랜과 ssms에서의 실제 플랜이 다르다는 것을 확인 하신 뒤에
실행 계획을 여러가지 방법으로 고정하시는게 좋을 듯 싶습니다.
-
맨즈밤
2014.01.24 17:20
솔이님 말씀처럼 SET 옵션에 의해서 하나의 프로시저가 여러개의 실행계획을 가질수 있습니다.
우선 통계정보 업데이트 함 하시고 , 프로시저 리컴파일시켜서 어플에서 실행해보시길 바랍니다.
-
이스트럭(강동운)
2014.01.24 17:22
안녕하세요~!
http://www.sqler.com/269485
글 참고하시기 바랍니다. ^^
저랑 같은 문제로 고민하는 분이 계셨군요
이게 답이 될지 모르겠지만...
지금 사용하시는 프로시저와 똑같은 프로시저를 다른 이름으로 만드신 후에
만든 프로시저로 호출해보세요.
아마(?) 6초에 조회가 될 겁니다.
시간이 없어 이런식으로 해결을 보긴 했습니다만, 정확한 이유는 저도 잘 모르겠습니다.
컴파일된 캐시에 문제가 있는건지... 문제가 뭘까요? ㅎㅎㅎ